@import "https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,300..900;1,14..32,300..900&display=swap";:root{--clr-brand-dark:#004f46;--clr-brand-green:#437742;--clr-brand-olive:#d6b43e;--clr-brand-cream:#fdbf68;--clr-brand-cream-hover:#fcd34d;--clr-brand-cream-dim:#fdbf6826;--clr-brand-green-hover:#376335;--clr-slate-50:#f8fafc;--clr-slate-100:#f1f5f9;--clr-slate-200:#e2e8f0;--clr-slate-300:#cbd5e1;--clr-slate-400:#94a3b8;--clr-slate-500:#64748b;--clr-slate-600:#475569;--clr-slate-700:#334155;--clr-slate-800:#1e293b;--clr-slate-900:#0f172a;--clr-bg:var(--clr-slate-50);--clr-bg-card:#fff;--clr-bg-card-hover:var(--clr-slate-100);--clr-border:var(--clr-slate-200);--clr-border-hover:var(--clr-slate-300);--clr-text-primary:var(--clr-slate-900);--clr-text-secondary:var(--clr-slate-600);--clr-text-muted:var(--clr-slate-400);--clr-sidebar-bg:var(--clr-brand-dark);--clr-sidebar-border:#ffffff1a;--clr-sidebar-text:#ffffffb3;--clr-sidebar-active-bg:var(--clr-brand-green);--clr-sidebar-active-text:#fff;--clr-primary-500:var(--clr-brand-cream);--clr-primary-600:var(--clr-brand-cream-hover);--clr-overdue:#ef4444;--clr-critical:#f97316;--clr-warning:var(--clr-brand-olive);--clr-success:#10b981;--clr-info:var(--clr-brand-cream);--clr-overdue-bg:#ef444426;--clr-critical-bg:#f9731626;--clr-warning-bg:#d6b43e26;--clr-success-bg:#10b98126;--clr-info-bg:#fdbf6826;--sidebar-width:248px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;--radius-full:9999px;--font-family:"Inter", "Inter Variable", system-ui, -apple-system, sans-serif;--font-xs:.688rem;--font-sm:.813rem;--font-base:.938rem;--font-md:1rem;--font-lg:1.125rem;--font-xl:1.375rem;--font-2xl:1.75rem;--font-3xl:2.25rem;--shadow-sm:0 1px 2px #0f172a0f;--shadow-card:0 1px 3px #0f172a14, 0 1px 2px #0f172a0d;--shadow-md:0 4px 6px -1px #0f172a14, 0 2px 4px -2px #0f172a0d;--shadow-lg:0 10px 15px -3px #0f172a14, 0 4px 6px -4px #0f172a0d;--shadow-focus:0 0 0 3px #0ea5e933;--transition-fast:.12s ease;--transition-base:.2s ease;--transition-slow:.35s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-family);font-size:var(--font-base);font-feature-settings:"kern" 1, "liga" 1, "calt" 1;background-color:var(--clr-bg);color:var(--clr-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;outline:none;font-family:inherit}input,select,textarea{font-family:inherit}ul,ol{list-style:none}img{max-width:100%;display:block}.app-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--clr-sidebar-bg);border-right:1px solid var(--clr-sidebar-border);min-height:100vh;padding:var(--space-6) 0;z-index:100;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.main-content{margin-left:var(--sidebar-width);padding:var(--space-8);background:var(--clr-bg);flex:1;min-height:100vh}.sidebar__logo{align-items:center;gap:var(--space-3);padding:0 var(--space-5);margin-bottom:var(--space-8);display:flex}.sidebar__logo-icon{background:var(--clr-brand-cream);border-radius:var(--radius-md);border:1px solid #fdbf684d;flex-shrink:0;justify-content:center;align-items:center;width:66px;height:66px;display:flex}.sidebar__logo-text{font-size:var(--font-md);color:#fff;font-weight:700;line-height:1.2}.sidebar__logo-sub{font-size:var(--font-xs);color:#fff6}.sidebar__nav{padding:0 var(--space-3);flex:1}.nav-item{align-items:center;gap:var(--space-3);padding:10px var(--space-3);border-radius:var(--radius-md);color:var(--clr-sidebar-text);font-size:var(--font-sm);transition:all var(--transition-fast);cursor:pointer;text-align:left;background:0 0;border:none;width:100%;margin-bottom:2px;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{color:#fff;background:#ffffff12}.nav-item.active{color:var(--clr-sidebar-active-text);background:var(--clr-sidebar-active-bg);border-left:3px solid var(--clr-brand-gold);padding-left:calc(var(--space-3) - 3px);font-weight:600}.nav-item__icon{flex-shrink:0;align-items:center;display:flex}.nav-item__badge{background:var(--clr-overdue);color:#fff;border-radius:var(--radius-full);margin-left:auto;padding:1px 7px;font-size:10px;font-weight:700;line-height:18px}.card,.glass{background:var(--clr-bg-card);-webkit-backdrop-filter:blur(12px);border:1px solid var(--clr-border);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-card);transition:box-shadow var(--transition-base), border-color var(--transition-base)}.card:hover,.glass:hover{box-shadow:var(--shadow-md);border-color:var(--clr-border-hover)}.card--overdue{border-left:3px solid var(--clr-overdue)}.card--critical{border-left:3px solid var(--clr-critical)}.card--warning{border-left:3px solid var(--clr-warning)}.metric-grid{gap:var(--space-4);margin-bottom:var(--space-8);grid-template-columns:repeat(6,1fr);min-width:0;display:grid}.metric-card{background:var(--clr-bg-card);border:1px solid var(--clr-border);border-radius:var(--radius-xl);padding:var(--space-5) var(--space-5);gap:var(--space-1);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base), transform var(--transition-fast), border-color var(--transition-base);flex-direction:column;display:flex}.metric-card:hover{box-shadow:var(--shadow-md);border-color:var(--clr-border-hover);transform:translateY(-1px)}.metric-card__label{font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--clr-text-muted);font-weight:600}.metric-card__value{font-size:var(--font-2xl);color:var(--clr-text-primary);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:800;line-height:1.15}.metric-card__sub{font-size:var(--font-xs);color:var(--clr-text-muted)}.badge{border-radius:var(--radius-full);font-size:var(--font-xs);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:5px;padding:3px 10px;font-weight:700;display:inline-flex}.badge--overdue{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.badge--critical{color:#c2410c;background:#fff7ed;border:1px solid #fed7aa}.badge--warning{color:#b45309;background:#fffbeb;border:1px solid #fde68a}.badge--success{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0}.badge--info{color:#0369a1;background:#f0f9ff;border:1px solid #bae6fd}.badge:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;width:5px;height:5px}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-size:var(--font-sm);transition:all var(--transition-fast);white-space:nowrap;border:1px solid #0000;font-weight:600;line-height:1;display:inline-flex}.btn--primary{background:var(--clr-brand-cream);color:var(--clr-brand-dark);border-color:var(--clr-brand-cream);box-shadow:0 4px 14px #fdbf6833}.btn--primary:hover{background:var(--clr-brand-cream-hover);border-color:var(--clr-brand-cream-hover);transform:translateY(-1px);box-shadow:0 6px 20px #fdbf684d}.btn--primary:focus-visible{box-shadow:0 0 0 3px #fdbf6866}.btn--ghost{color:var(--clr-text-secondary);border-color:var(--clr-border);background:0 0}.btn--ghost:hover{background:var(--clr-slate-100);color:var(--clr-text-primary);border-color:var(--clr-border-hover)}.btn--danger{background:var(--clr-overdue-bg);color:var(--clr-overdue);border-color:#fecaca}.btn--danger:hover{background:#fee2e2}.btn--sm{padding:var(--space-2) var(--space-3);font-size:var(--font-xs)}.btn--icon{padding:var(--space-2)}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-label{font-size:var(--font-sm);color:var(--clr-text-secondary);font-weight:500}.form-input{border:1px solid var(--clr-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);color:var(--clr-text-primary);font-size:var(--font-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);background:#fff;width:100%}.form-input:focus{border-color:var(--clr-brand-cream);outline:none;box-shadow:0 0 0 3px #fdbf6833}.form-input::placeholder{color:var(--clr-text-muted)}.form-input:disabled{cursor:not-allowed;background:#ffffff05}.progress-bar{background:var(--clr-slate-100);border-radius:var(--radius-full);width:100%;height:6px;overflow:hidden}.progress-bar__fill{border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.progress-bar__fill--success{background:var(--clr-success)}.progress-bar__fill--warning{background:var(--clr-warning)}.progress-bar__fill--critical{background:var(--clr-critical)}.progress-bar__fill--overdue{background:var(--clr-overdue)}.data-table{border-collapse:collapse;width:100%}.data-table th{font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--clr-text-secondary);padding:var(--space-3) var(--space-4);text-align:left;border-bottom:2px solid var(--clr-border);background:var(--clr-slate-50);font-weight:700}.data-table td{padding:var(--space-3) var(--space-4);font-size:var(--font-sm);border-bottom:1px solid var(--clr-slate-100);vertical-align:middle;color:var(--clr-text-primary)}.data-table tr:hover td{background:var(--clr-slate-50)}.data-table tr:last-child td{border-bottom:none}.page-header{margin-bottom:var(--space-8);padding-bottom:var(--space-6);border-bottom:1px solid var(--clr-border);justify-content:space-between;align-items:center;display:flex}.page-title{font-size:var(--font-2xl);color:var(--clr-text-primary);letter-spacing:-.025em;font-weight:800;line-height:1.1}.page-subtitle{font-size:var(--font-sm);color:var(--clr-text-muted);margin-top:var(--space-1)}.section-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.alert-banner{align-items:flex-start;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);margin-bottom:var(--space-3);border:1px solid;display:flex}.alert-banner:last-child{margin-bottom:0}.alert-banner--overdue{background:var(--clr-overdue-bg);border-color:#fecaca;border-left:4px solid var(--clr-overdue)}.alert-banner--critical{background:var(--clr-critical-bg);border-color:#fed7aa;border-left:4px solid var(--clr-critical)}.alert-banner--warning{background:var(--clr-warning-bg);border-color:#fde68a;border-left:4px solid var(--clr-warning)}.alert-banner--info{background:var(--clr-info-bg);border-color:var(--clr-primary-200);border-left:4px solid var(--clr-info)}.modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:1000;padding:var(--space-6);background:#004f46cc;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{border:1px solid var(--clr-border);border-radius:var(--radius-2xl);padding:var(--space-8);width:100%;max-width:520px;box-shadow:var(--shadow-lg);background:#fff;animation:.2s slideUp}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.modal__header{margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:1px solid var(--clr-border);justify-content:space-between;align-items:center;display:flex}.modal__title{font-size:var(--font-lg);font-weight:700}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--clr-slate-200);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--clr-slate-300)}.text-primary{color:var(--clr-text-primary)}.text-secondary{color:var(--clr-text-secondary)}.text-muted{color:var(--clr-text-muted)}.text-overdue{color:var(--clr-overdue)}.text-warning{color:var(--clr-warning)}.text-success{color:var(--clr-success)}.text-sm{font-size:var(--font-sm)}.font-bold{font-weight:700}.font-semibold{font-weight:600}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.w-full{width:100%}.bottom-nav{background:var(--clr-brand-dark);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--clr-sidebar-border);z-index:90;padding-bottom:env(safe-area-inset-bottom);display:none;position:fixed;bottom:0;left:0;right:0}.bottom-nav__list{padding:var(--space-2) 0;justify-content:space-around;align-items:center;display:flex}.bottom-nav__item{color:var(--clr-sidebar-text);padding:var(--space-2);transition:color var(--transition-fast);flex-direction:column;align-items:center;gap:4px;font-size:10px;font-weight:600;text-decoration:none;display:flex}.bottom-nav__item.active{color:var(--clr-brand-cream)}.fab-container{bottom:calc(var(--space-6) + env(safe-area-inset-bottom));right:var(--space-6);z-index:95;align-items:flex-end;gap:var(--space-3);flex-direction:column;display:flex;position:fixed}.fab{background:var(--clr-brand-cream);width:56px;height:56px;color:var(--clr-brand-dark);transition:transform var(--transition-base), box-shadow var(--transition-base);border-radius:50%;justify-content:center;align-items:center;display:flex;box-shadow:0 4px 14px #fdbf684d}.fab:hover{transform:scale(1.05);box-shadow:0 6px 20px #fdbf6866}.fab-menu{gap:var(--space-2);margin-bottom:var(--space-2);flex-direction:column;align-items:flex-end;animation:.2s slideUp;display:flex}.fab-menu-item{align-items:center;gap:var(--space-3);background:var(--clr-bg-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--clr-border);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);color:var(--clr-text-primary);font-size:var(--font-sm);box-shadow:var(--shadow-md);transition:background var(--transition-fast);font-weight:600;display:flex}.fab-menu-item:hover{background:var(--clr-bg-card-hover)}@media (width<=768px){.sidebar{display:none}.bottom-nav{display:block}.main-content{padding:var(--space-4);padding-bottom:calc(80px + env(safe-area-inset-bottom));margin-left:0}.fab-container{bottom:calc(80px + var(--space-4) + env(safe-area-inset-bottom));right:var(--space-4)}.card{padding:var(--space-4)}.metric-grid{grid-template-columns:repeat(2,1fr)}}
