@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap";:root{--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Plus Jakarta Sans", "Inter", system-ui, sans-serif;--navy-950:#071730;--navy-900:#0a1f3d;--navy-800:#0f2b52;--navy-700:#163a6b;--navy-600:#1f4b85;--teal-700:#0f766e;--teal-600:#0d9488;--teal-500:#14b8a6;--teal-100:#ccfbf1;--teal-50:#f0fdfa;--bg-app:#f3f6fa;--bg-sidebar:var(--navy-900);--bg-surface:#fff;--bg-surface-elevated:#fff;--bg-muted:#f7f9fc;--bg-card:#fff;--bg-card-hover:#fbfdff;--border-subtle:#e3e9f1;--border-medium:#cfd8e4;--border-bright:#0d948880;--text-main:#0f2b52;--text-primary:#0f2b52;--text-secondary:#52627a;--text-muted:#52627a;--text-dim:#7b8aa0;--accent-primary:#0d9488;--accent-primary-hover:#0f766e;--accent-primary-glow:#0d94882e;--accent-emerald:#059669;--accent-emerald-glow:#05966926;--accent-amber:#d97706;--accent-amber-glow:#d9770626;--accent-rose:#dc2626;--accent-rose-glow:#dc262626;--accent-cyan:#0d9488;--accent-purple:#1f4b85;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--shadow-card:0 1px 2px #0f2b520a, 0 4px 16px -6px #0f2b5214;--shadow-raised:0 2px 4px #0f2b520d, 0 12px 28px -8px #0f2b5229;--shadow-glow:0 0 0 3px #0d948826}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1, "cv11" 1;min-height:100vh;line-height:1.5}h1,h2,h3,h4,.font-display{font-family:var(--font-display);letter-spacing:-.015em;color:var(--text-main)}::selection{background:var(--teal-100);color:var(--navy-900)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#c9d3e0;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a9b7c9}.app-container{width:100%;max-width:100vw;min-height:100vh;display:flex;overflow-x:hidden}.sidebar{background:linear-gradient(180deg, var(--navy-900) 0%, var(--navy-950) 100%);color:#dbe5f1;z-index:40;flex-direction:column;flex-shrink:0;width:264px;min-width:264px;max-width:264px;height:100vh;display:flex;position:sticky;top:0}.main-content{flex-direction:column;flex:1;min-width:0;max-width:calc(100vw - 264px);display:flex;overflow:hidden auto}.sidebar-header{border-bottom:1px solid #ffffff12;padding:1.25rem 1.25rem 1rem}.brand-badge{align-items:center;gap:.75rem;display:flex}.brand-icon{background:linear-gradient(135deg, var(--teal-500), var(--teal-700));border-radius:var(--radius-md);color:#fff;justify-content:center;align-items:center;width:38px;height:38px;display:flex;box-shadow:0 6px 16px #14b8a64d}.brand-title{font-family:var(--font-display);color:#fff;letter-spacing:.02em;font-size:1.1rem;font-weight:800;line-height:1.2}.brand-sub{color:#7fd6cc;letter-spacing:.04em;font-size:.7rem;font-weight:600}.client-tag{border-radius:var(--radius-sm);background:#ffffff0d;flex-direction:column;gap:.1rem;margin-top:.9rem;padding:.5rem .7rem;font-size:.8rem;display:flex}.client-tag-label{color:#8ea3bf;text-transform:uppercase;letter-spacing:.06em;font-size:.66rem;font-weight:600}.client-tag strong{color:#fff;font-weight:600}.sidebar-user{border-radius:var(--radius-md);background:#ffffff0a;border:1px solid #ffffff0f;align-items:center;gap:.65rem;min-width:0;margin:.9rem 1rem .25rem;padding:.7rem .75rem;display:flex}.sidebar-avatar{background:var(--teal-600);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:.8rem;font-weight:700;display:flex}.sidebar-user-name{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;font-weight:600;line-height:1.25;overflow:hidden}.sidebar-user-role{color:#7fd6cc;font-size:.72rem;font-weight:500}.sidebar-user-site{color:#8ea3bf;text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.nav-section{color:#6f86a6;text-transform:uppercase;letter-spacing:.09em;text-overflow:ellipsis;white-space:nowrap;padding:1.1rem 1.4rem .35rem;font-size:.64rem;font-weight:700;overflow:hidden}.nav-links{flex-direction:column;gap:2px;padding:0 .75rem;list-style:none;display:flex}.nav-item{border-radius:var(--radius-sm);color:#b8c7da;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.7rem;padding:.55rem .75rem;font-size:.86rem;font-weight:500;transition:background .15s,color .15s;display:flex;position:relative}.nav-item:hover{color:#fff;background:#ffffff0f}.nav-item.active{color:#fff;background:#14b8a629;font-weight:600}.nav-item.active:before{content:"";background:var(--teal-500);border-radius:0 3px 3px 0;width:3px;position:absolute;top:6px;bottom:6px;left:-.75rem}.nav-item.active svg{color:#5eead4!important}.nav-item>span:first-of-type{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.nav-item .badge{color:#9fb2cb;white-space:nowrap;background:#ffffff12;border-radius:999px;margin-left:auto;padding:.1rem .45rem;font-size:.64rem;font-weight:600;display:none}.nav-item.active .badge{color:#ccfbf1;background:#14b8a640}.sidebar-footer{border-top:1px solid #ffffff12;margin-top:auto;padding:.85rem 1rem}.sidebar-signout{color:#b8c7da;border-radius:var(--radius-md);cursor:pointer;background:0 0;border:1px solid #ffffff1f;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.55rem;font-family:inherit;font-size:.82rem;font-weight:600;transition:all .15s;display:flex}.sidebar-signout:hover{color:#fecaca;background:#dc262626;border-color:#dc262666}.top-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);z-index:30;background:#ffffffeb;justify-content:space-between;align-items:center;gap:.75rem;width:100%;padding:.7rem 1.75rem;display:flex;position:sticky;top:0}.header-left{flex-shrink:1;align-items:center;gap:.6rem;min-width:0;display:flex}.project-selector{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:.5rem;padding:.45rem .85rem;font-size:.875rem;font-weight:600;display:flex}.header-right{align-items:center;gap:1rem;display:flex}.role-switcher{background:var(--bg-muted);border-radius:var(--radius-md);border:1px solid var(--border-subtle);align-items:center;gap:.5rem;padding:.35rem .75rem;font-size:.8rem;display:flex}.role-select{color:var(--teal-700);cursor:pointer;background:0 0;border:none;outline:none;font-size:.82rem;font-weight:600}.role-select option{color:var(--text-main);background:#fff}.sync-status{color:var(--accent-emerald);background:#ecfdf5;border:1px solid #a7f3d0;border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .65rem;font-size:.75rem;font-weight:600;display:flex}.pulse-dot{background:var(--accent-emerald);border-radius:50%;width:7px;height:7px;animation:2s infinite pulse}@keyframes pulse{0%{transform:scale(.95);box-shadow:0 0 #05966980}70%{transform:scale(1);box-shadow:0 0 0 6px #05966900}to{transform:scale(.95);box-shadow:0 0 #05966900}}.page-container{flex-direction:column;gap:1.5rem;width:100%;max-width:1440px;margin:0 auto;padding:1.75rem 2rem 2.5rem;display:flex}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;padding-bottom:.25rem;display:flex}.page-title{font-family:var(--font-display);color:var(--navy-900);letter-spacing:-.02em;font-size:1.6rem;font-weight:800}.page-subtitle{color:var(--text-muted);max-width:760px;margin-top:.25rem;font-size:.9rem}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;display:grid}.metric-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:1.15rem 1.25rem;transition:box-shadow .2s,transform .2s;position:relative;overflow:hidden}.metric-card:hover{box-shadow:var(--shadow-raised);transform:translateY(-1px)}.metric-card:before{content:"";background:var(--border-subtle);height:3px;position:absolute;top:0;left:0;right:0}.metric-card.primary:before{background:var(--teal-600)}.metric-card.warning:before{background:var(--accent-amber)}.metric-card.success:before{background:var(--accent-emerald)}.metric-card.purple:before{background:var(--navy-600)}.metric-header{justify-content:space-between;align-items:center;margin-bottom:.6rem;display:flex}.metric-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.74rem;font-weight:600}.metric-icon-wrap{border-radius:var(--radius-md);background:var(--teal-50);width:34px;height:34px;color:var(--teal-600);justify-content:center;align-items:center;display:flex}.metric-value{font-family:var(--font-display);color:var(--navy-900);letter-spacing:-.02em;font-size:1.6rem;font-weight:800;line-height:1.15}.metric-sub{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.45rem;font-size:.78rem;display:flex}.glass-panel{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:1.4rem 1.5rem}.panel-header{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.1rem;padding-bottom:.85rem;display:flex}.panel-title{font-family:var(--font-display);color:var(--navy-900);align-items:center;gap:.5rem;font-size:1.02rem;font-weight:700;display:flex}.btn{border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:1px solid #0000;outline:none;justify-content:center;align-items:center;gap:.45rem;padding:.55rem 1.1rem;font-family:inherit;font-size:.86rem;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s;display:inline-flex}.btn:focus-visible{box-shadow:var(--shadow-glow)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none!important}.btn-primary{background:var(--teal-600);color:#fff;box-shadow:0 1px 2px #0f766e40}.btn-primary:hover{background:var(--teal-700)}.btn-emerald{background:var(--accent-emerald);color:#fff}.btn-emerald:hover{background:#047857}.btn-amber{color:var(--navy-900);background:#f59e0b;font-weight:700}.btn-amber:hover{background:#d97706}.btn-outline{color:var(--navy-800);border-color:var(--border-medium);background:#fff}.btn-outline:hover{background:var(--bg-muted);border-color:var(--teal-600);color:var(--teal-700)}.btn-danger{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.btn-danger:hover{background:#fee2e2}.btn-sm{padding:.38rem .75rem;font-size:.78rem}.table-wrap{border:1px solid var(--border-subtle);border-radius:var(--radius-md);width:100%;overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;width:100%}.data-table th{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border-subtle);background:var(--bg-muted);white-space:nowrap;padding:.7rem 1rem;font-size:.7rem;font-weight:700}.data-table td{color:var(--text-main);vertical-align:middle;border-bottom:1px solid #edf1f6;padding:.8rem 1rem;font-size:.85rem}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:#f8fbfd}.badge-pill{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:999px;align-items:center;gap:.35rem;padding:.18rem .6rem;font-size:.7rem;font-weight:600;display:inline-flex}.badge-approved,.badge-completed,.badge-active{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0}.badge-pending,.badge-routine{color:#b45309;background:#fffbeb;border:1px solid #fde68a}.badge-urgent,.badge-rejected{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.badge-neutral{color:var(--text-muted);border:1px solid var(--border-subtle);background:#f1f5f9}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0a1f3d73;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-content{border:1px solid var(--border-subtle);border-radius:var(--radius-xl);background:#fff;flex-direction:column;gap:1.25rem;width:100%;max-width:650px;max-height:90vh;padding:1.75rem;display:flex;overflow-y:auto;box-shadow:0 24px 60px -12px #0a1f3d59}.modal-header{justify-content:space-between;align-items:center;display:flex}.modal-title{font-family:var(--font-display);color:var(--navy-900);font-size:1.25rem;font-weight:700}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-label{color:var(--navy-700);font-size:.8rem;font-weight:600}.form-input,.form-select,.form-textarea{border:1px solid var(--border-medium);border-radius:var(--radius-md);color:var(--text-main);background:#fff;outline:none;padding:.6rem .85rem;font-family:inherit;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.form-input::placeholder,.form-textarea::placeholder{color:#9aa8bb}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--teal-600);box-shadow:var(--shadow-glow)}input,select,textarea{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:inherit}input:focus,select:focus,textarea:focus{outline-color:var(--teal-600)}select option{color:var(--text-main);background:#fff}input[type=checkbox],input[type=radio]{accent-color:var(--teal-600)}.form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.margin-gauge-container{background:var(--bg-muted);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);align-items:center;gap:1.5rem;padding:1.25rem;display:flex}.margin-gauge-bar-wrap{flex-direction:column;flex:1;gap:.4rem;display:flex}.margin-bar{background:#e6ecf3;border-radius:999px;height:12px;display:flex;position:relative;overflow:hidden}.bar-actual{background:var(--teal-600);height:100%}.bar-committed{background:#f59e0b;height:100%}@media (width<=900px){.app-container{flex-direction:column}.sidebar{width:100%;min-width:0;max-width:none;height:auto;position:relative}.main-content{max-width:100vw}.page-container{padding:1.25rem 1rem 2rem}.top-header{flex-wrap:wrap;padding:.65rem 1rem}.form-row{grid-template-columns:1fr}}.desk-switcher-banner{border-bottom:1px solid var(--border-subtle);background:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 2rem;display:flex}.desk-switcher-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:.5rem;font-size:.78rem;font-weight:700;display:flex}.desk-tabs-list{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.desk-tab-btn{border-radius:var(--radius-md);border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;background:#fff;align-items:center;gap:.5rem;padding:.45rem .85rem;font-size:.82rem;font-weight:600;transition:all .15s;display:flex}.desk-tab-btn:hover{background:var(--bg-muted);color:var(--text-primary);border-color:var(--border-medium)}.desk-tab-btn.active{background:var(--navy-800);border-color:var(--navy-800);color:#fff}.desk-tab-badge{color:var(--text-muted);background:#eef2f7;border-radius:999px;padding:.12rem .45rem;font-size:.68rem;font-weight:600}.desk-tab-btn.active .desk-tab-badge{color:#ccfbf1;background:#14b8a64d}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.9s linear infinite spin}.login-shell{background:#fff;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:100vh;display:grid}.login-brand{background:radial-gradient(circle at 85% 15%, #14b8a638, transparent 45%), linear-gradient(160deg, var(--navy-800) 0%, var(--navy-950) 100%);flex-direction:column;padding:2.5rem 3rem;display:flex}.login-form-side{justify-content:center;align-items:center;padding:2.5rem 1.5rem;display:flex}.login-role{text-align:left;border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;background:#fff;flex-direction:column;gap:.1rem;padding:.6rem .75rem;font-family:inherit;transition:border-color .15s,background .15s;display:flex}.login-role strong{color:var(--navy-900);font-size:.84rem}.login-role span{color:var(--text-dim);font-size:.72rem}.login-role:hover{border-color:var(--teal-600);background:var(--teal-50)}@media (width<=900px){.login-shell{grid-template-columns:1fr}.login-brand{padding:1.75rem 1.25rem}.login-brand h1{font-size:1.7rem!important}}.modal-card{border:1px solid var(--border-subtle);border-radius:var(--radius-xl);background:#fff;width:100%;max-width:650px;max-height:90vh;padding:1.75rem;overflow-y:auto;box-shadow:0 24px 60px -12px #0a1f3d59}.modal-card .modal-header{border-bottom:1px solid var(--border-subtle);margin-bottom:1.25rem;padding-bottom:.85rem}.table-responsive{width:100%;overflow-x:auto}.form-group{min-width:0}.form-group>.form-input,.form-group>.form-select,.form-group>.form-textarea{width:100%;min-width:0}
