:root{--font-body:"Avenir Next","Manrope","Segoe UI","Helvetica Neue",sans-serif;--font-heading:"Sora","Space Grotesk","Trebuchet MS","Segoe UI",sans-serif;--bg:#f4f2ec;--text:#13140f;--muted:#5f6257;--surface:#fffef9;--surface-2:#ece9dc;--line:#d6d1c2;--primary:#0d5a50;--primary-2:#6f9522;--warn:#b94f28}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%}body{font-family:var(--font-body),sans-serif;color:var(--text);background:radial-gradient(circle at 10% 10%,rgba(111,149,34,.18),transparent 36%),radial-gradient(circle at 100% 0,rgba(13,90,80,.2),transparent 32%),linear-gradient(180deg,#f9f7f0,#f0ecdf)}a{color:inherit;text-decoration:none}.app-grid{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.sidebar{border-right:1px solid var(--line);background:linear-gradient(180deg,#fdfbf2,#f5f1e4);padding:22px}.brand-block{display:flex;gap:12px;align-items:center;margin-bottom:24px}.morulaa-logo{display:inline-flex;align-items:center;gap:10px}.morulaa-logo svg{width:50px;height:40px}.wordmark{display:flex;flex-direction:column;line-height:1}.wordmark .morulaa{font-weight:700;color:#cc3f46;font-size:1.45rem}.wordmark .healthtech,.wordmark .morulaa{font-family:var(--font-heading),sans-serif}.wordmark .healthtech{font-weight:600;color:#5d6365;font-size:1.38rem}.brand-title{margin:0;font-family:var(--font-heading),sans-serif;font-size:1rem;letter-spacing:.02em}.brand-subtitle{margin:2px 0 0;color:var(--muted);font-size:.8rem}.nav-list{display:flex;flex-direction:column;gap:8px}.nav-item{padding:10px 12px;border-radius:10px;color:#2b2e25;transition:background-color .12s ease,transform .12s ease}.nav-item:hover{background:#ebe7d8;transform:translateX(2px)}.nav-item.active{background:#dde8d6;color:#16352f;font-weight:600}.main-pane{padding:22px;display:flex;flex-direction:column;gap:18px}.topbar{width:100%;max-width:1240px;margin:0 auto;min-height:132px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#fffef8,#f5f1e2);padding:16px 18px;display:grid;grid-template-columns:1fr auto 1fr;grid-gap:16px;gap:16px;align-items:center}.topbar-left{justify-self:start}.topbar-center{justify-self:center;text-align:center}.page-label{margin:0;color:var(--muted);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.page-title{margin:4px 0 0;font-family:var(--font-heading),sans-serif;font-size:1.05rem}.role-chips{display:flex;gap:8px;flex-wrap:wrap}.topbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;justify-self:end}.chip{border:1px solid #b6c8a8;border-radius:999px;padding:6px 10px;font-size:.76rem;background:#eef4e8;color:#264224}.chip-toggle{cursor:pointer;font-family:var(--font-body),sans-serif}.chip-toggle.active{background:#dcead2;border-color:#8fae7a;color:#183318}.content-card{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:18px}.content-card,.content-plain{width:100%;max-width:1240px;margin:0 auto}.hero-grid{display:grid;grid-gap:16px;gap:16px}.hero-panel{padding:20px;border-radius:12px;border:1px solid #c7dac0;background:linear-gradient(140deg,#ecf8e8,#f6fbe8)}.hero-panel h2{margin:6px 0;font-family:var(--font-heading),sans-serif}.hero-panel p{margin:0;color:#3a4134;max-width:760px}.eyebrow{margin:0;color:#3e6a1d;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.stat-card{border:1px solid #d8dfce;border-radius:12px;padding:14px;background:#fffef9}.stat-head{display:flex;justify-content:space-between}.stat-label{margin:0;color:var(--muted);font-size:.8rem}.stat-value{margin:8px 0 6px;font-family:var(--font-heading),sans-serif;font-size:1.2rem}.stat-hint{margin:0;color:#4d5246;font-size:.8rem}.employee-dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.employee-card{border:1px solid #cfd7c0;border-radius:12px;padding:14px;background:var(--surface);box-shadow:0 8px 18px rgba(40,56,34,.08)}.employee-card-header{display:flex;align-items:center;gap:.45rem;color:#1a3a24}.employee-card-title{margin:0;font-size:1rem;font-weight:700;line-height:1.1}.employee-card-sep{margin:.5rem 0 .75rem;height:1px;background:linear-gradient(90deg,rgba(26,58,36,.65),rgba(26,58,36,.12))}.employee-card-square{min-height:210px}.employee-card-wide{grid-column:span 3;min-height:210px}.employee-card-list{margin:10px 0 0;padding-left:18px;display:grid;grid-gap:8px;gap:8px;color:#3f4639;font-size:.9rem}.service-gauge{display:grid;place-items:center;margin:6px 0 10px}.service-gauge-ring{width:88px;height:88px;border-radius:999px;display:grid;place-items:center}.service-gauge-core{width:62px;height:62px;border-radius:999px;background:#f5f5ef;display:grid;place-items:center;font-family:var(--font-heading),sans-serif;font-weight:700;color:#2e443e}.user-badge{border:1px solid #d5ddc8;border-radius:999px;background:#f4f8ee;color:#33422a;font-size:.8rem;padding:7px 12px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.button{border:1px solid transparent;border-radius:10px;padding:10px 14px;font-family:var(--font-body),sans-serif;font-size:.9rem;cursor:pointer;transition:transform .12s ease,filter .12s ease}.button:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.03)}.button:disabled{opacity:.75;cursor:progress}.button.primary{background:linear-gradient(135deg,#0f665a,#678e22);color:#f7fff7}.button.ghost{background:#f2efe3;border-color:#d5d0be;color:#2c3026}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-shell{width:min(100%,1020px);min-height:620px;border:1px solid #dad4c7;border-radius:18px;background:linear-gradient(165deg,#fffdf6,#f2eddf 65%);box-shadow:0 26px 68px rgba(34,38,26,.14);display:grid;grid-template-columns:1fr 1fr;overflow:hidden}.auth-panel{border-right:1px solid #ded9ca;padding:42px;background:radial-gradient(circle at 0 0,rgba(12,89,79,.17),transparent 40%),radial-gradient(circle at 80% 90%,rgba(106,145,33,.2),transparent 36%),linear-gradient(150deg,#fdfbf1,#f0eadb);display:flex;flex-direction:column;gap:16px}.auth-panel h1{margin:0;font-family:var(--font-heading),sans-serif;font-size:2rem}.auth-panel p{margin:0;color:#4c5048;max-width:34ch}.auth-card{padding:42px;display:grid;align-content:center}.auth-card h2{margin:0;font-family:var(--font-heading),sans-serif;font-size:1.6rem}.auth-subtitle{margin:8px 0 20px;color:#5f6257}.auth-form{display:grid;grid-gap:10px;gap:10px}.auth-form label{font-size:.85rem;color:#495042}.auth-form input{border:1px solid #d1cab6;border-radius:10px;padding:12px;font-size:.95rem;outline:none;background:#fffeff}.auth-form input:focus{border-color:#88a066;box-shadow:0 0 0 3px hsla(85,23%,51%,.18)}.form-error{margin:2px 0;color:#a33d20;font-size:.84rem}.auth-hint{margin:16px 0 0;color:#5b604f;font-size:.83rem}.auth-hint a{color:#245d55;text-decoration:underline}.auth-loading{min-height:100vh;display:grid;place-items:center;font-size:.95rem;color:#4f544a}.module-stack{display:grid;grid-gap:14px;gap:14px}.module-header h2{margin:6px 0;font-family:var(--font-heading),sans-serif}.module-header p{margin:0;color:#495045}.panel-error{margin:0;padding:10px 12px;border:1px solid #e0b9ac;border-radius:10px;background:#fff4f0}.module-form{border:1px solid #d9d3c3;border-radius:12px;background:#fffdf7;padding:14px;display:grid;grid-gap:14px;gap:14px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.form-grid label{display:grid;grid-gap:6px;gap:6px;font-size:.83rem;color:#445042}.form-grid input,.form-grid select,.text-area{border:1px solid #d5cdb7;border-radius:9px;padding:10px;font-size:.9rem;background:#fff}.text-area{min-height:110px;resize:vertical}.inline-input{border:1px solid #d5cdb7;border-radius:9px;padding:8px 10px;font-size:.86rem;min-width:190px;background:#fff}.inline-input-password{min-width:220px}.module-actions{display:flex;justify-content:flex-end}.module-actions.split{justify-content:flex-start;gap:10px}.wide{grid-column:span 3}.module-note{border:1px solid #ddd6c8;border-radius:12px;background:#f8f4e8;padding:12px;color:#585e50;font-size:.9rem}.module-hint{color:#5c6154;font-size:.85rem}.tab-row{display:flex;gap:10px;flex-wrap:wrap}.tab-button{border:1px solid #d5d0be;border-radius:999px;background:#f2efe3;color:#2c3026;font-size:.88rem;padding:8px 14px;cursor:pointer}.tab-button.active{background:linear-gradient(135deg,#0f665a,#678e22);border-color:transparent;color:#f7fff7}.tab-button:disabled{opacity:.6;cursor:not-allowed}.table-wrap{overflow-x:auto;border:1px solid #dad4c4;border-radius:12px}.data-table{width:100%;border-collapse:collapse;background:#fffef9}.data-table td,.data-table th{padding:10px 12px;border-bottom:1px solid #ece6d8;text-align:left;font-size:.88rem}.data-table th{background:#f5f1e4;color:#414734;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}.data-table tbody tr:hover{background:#faf8ef}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.row-actions-inline,.row-actions-nowrap{flex-wrap:nowrap;align-items:center}.field-label-with-info{display:inline-flex;align-items:center;gap:8px;position:relative}.info-icon-button{width:18px;height:18px;border:1px solid #b8c2ac;border-radius:999px;background:#edf3e6;color:#2f4b2e;font-size:.72rem;line-height:1;padding:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.info-popup{position:absolute;top:calc(100% + 8px);left:0;width:280px;padding:10px 12px;border:1px solid #c7d3ba;border-radius:10px;background:linear-gradient(180deg,#f8fbf1,#edf5e4);color:#2f4b2e;box-shadow:0 8px 20px rgba(33,46,33,.14);font-size:.8rem;line-height:1.35;z-index:30}.info-popup:before{content:"";position:absolute;top:-6px;left:14px;width:10px;height:10px;transform:rotate(45deg);background:#f6faef;border-top:1px solid #c7d3ba;border-left:1px solid #c7d3ba}.action-icon-button{width:32px;min-width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center}.action-icon{width:16px;height:16px}.user-create-grid{display:grid;grid-template-columns:minmax(420px,520px) minmax(220px,280px);grid-gap:10px;gap:10px;align-items:start}.user-create-fields{display:flex;flex-direction:column;gap:10px;align-items:stretch}.user-create-fields>label{display:grid;grid-gap:6px;gap:6px;width:100%}.user-create-fields>label input{width:75%;min-width:260px}.user-role-box{width:100%;margin-left:-10px}.role-check-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}.user-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));grid-column-gap:12px;column-gap:12px;grid-row-gap:8px;row-gap:8px;justify-content:start}.role-check-item{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:#344335;border:1px solid #d5dcca;border-radius:999px;background:#f5f9f1;padding:4px 10px;margin:0;white-space:nowrap}.role-check-item input{margin:0}.role-group{grid-column:span 1;border:1px solid #d5cdb7;border-radius:10px;background:#fffdf8;padding:8px 10px}.role-group legend{padding:0 6px;color:#445042;font-size:.78rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.8rem}.kv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:6px 16px;gap:6px 16px}.kv-grid p{margin:0;color:#3e473c;font-size:.9rem}.section-title{margin:0;font-family:var(--font-heading),sans-serif;font-size:1rem}.json-block{margin:0;padding:10px;border:1px solid #ded7c4;border-radius:8px;background:#f8f5ea;font-size:.75rem;line-height:1.45;white-space:pre-wrap;word-break:break-word}.employee-photo-preview{margin-top:8px;width:84px;height:84px}.employee-photo-preview,.employee-photo-preview-large{border-radius:10px;border:1px solid #d5d0be;object-fit:cover;background:#f2efe5}.employee-photo-preview-large{width:100%;max-width:220px;aspect-ratio:1}.employee-editor-layout{display:grid;grid-template-columns:1fr 260px;grid-gap:14px;gap:14px;align-items:start}.employee-photo-panel{border:1px solid #d9d3c3;border-radius:12px;background:#fffdf7;padding:12px;display:grid;grid-gap:8px;gap:8px;justify-items:end}.photo-paste-zone{margin-top:8px;min-height:96px;border:1px dashed #c5cdbb;border-radius:10px;background:#f7f3e8;padding:8px;display:flex;align-items:center;justify-content:center;cursor:text}.photo-paste-zone-large{margin-top:0;width:100%;min-height:220px}.photo-paste-zone:focus{outline:none;border-color:#8fae7a;box-shadow:0 0 0 3px hsla(96,24%,58%,.18)}.profile-showcase{display:grid;grid-template-columns:240px 1fr;grid-gap:14px;gap:14px}.profile-photo-card{border:1px solid #d9d3c3;border-radius:12px;background:#fffdf7;padding:12px;display:grid;grid-gap:10px;gap:10px;align-content:start}.profile-photo-large{width:100%;aspect-ratio:1;border-radius:10px;object-fit:cover;border:1px solid #d9d3c3}.profile-photo-placeholder{width:100%;aspect-ratio:1;border-radius:10px;border:1px dashed #c5cdbb;color:#4f5c4f;background:#eef3e8;display:grid;place-items:center;font-size:.88rem}.profile-upload-button{width:100%;justify-content:center}.profile-photo-actions{display:grid;grid-gap:8px;gap:8px}.profile-photo-actions-icons{display:flex;flex-direction:row;gap:8px;align-items:center;justify-content:flex-end}.profile-details-card{border:1px solid #d9d3c3;border-radius:12px;background:#fffdf7;padding:14px}.profile-details-card h3{margin:0 0 10px;font-family:var(--font-heading),sans-serif}.profile-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px 14px;gap:8px 14px}.profile-detail-grid p{margin:0;color:#3e473c;font-size:.9rem}.attendance-history-wrap{padding-top:8px}.attendance-history-wrap .section-title{margin:0;padding:0 14px 10px}@media (max-width:1080px){.app-grid{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--line)}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.topbar{grid-template-columns:1fr;align-items:flex-start}.topbar-actions,.topbar-center,.topbar-left{justify-self:start;text-align:left}.topbar-actions{width:100%;justify-content:flex-start}.employee-dashboard-grid,.stats-grid{grid-template-columns:1fr}.employee-card-wide{grid-column:span 1}.auth-shell{min-height:auto}.auth-shell,.form-grid,.user-create-grid{grid-template-columns:1fr}.wide{grid-column:auto}.employee-editor-layout,.kv-grid,.profile-detail-grid,.profile-showcase{grid-template-columns:1fr}.auth-panel{border-right:none;border-bottom:1px solid #ded9ca}.auth-card,.auth-panel{padding:28px}}