:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#1e293b;background:#f1f5f9;font-synthesis:none;text-rendering:optimizeLegibility;font-optical-sizing:auto;font-weight:400;--navy:#0f172a;--blue:#2563eb;--muted:#64748b;--line:#e2e8f0}
*{box-sizing:border-box}body{margin:0;min-height:100vh}a{color:inherit;text-decoration:none}button,input{font:inherit}.login-page{background:#fff}.login-layout{display:grid;grid-template-columns:minmax(360px,46%) 1fr;min-height:100vh}.login-intro{position:relative;overflow:hidden;background:linear-gradient(145deg,#0f172a,#172554 72%,#1d4ed8);padding:44px 9%;color:#fff;display:flex;flex-direction:column}.brand{display:inline-flex;align-items:center;gap:11px;font-size:19px;font-weight:750;letter-spacing:-.5px}.brand-mark{width:34px;height:34px;display:grid;place-items:center;background:#2563eb;border-radius:10px;color:white;font-size:18px}.brand-light{font-weight:400;color:#93c5fd}.intro-copy{margin:auto 0;max-width:480px;z-index:1}.eyebrow{font-size:10px;letter-spacing:1.3px;font-weight:750;color:#64748b}.login-intro .eyebrow{color:#93c5fd}.intro-copy h1{font-size:clamp(36px,4.5vw,58px);letter-spacing:-2.5px;line-height:1.08;margin:20px 0}.intro-copy h1 span{color:#93c5fd}.intro-copy p{font-size:16px;color:#cbd5e1;line-height:1.7;max-width:380px}.intro-foot{font-size:12px;color:#94a3b8;z-index:1}.login-ornament{position:absolute;right:-115px;bottom:8%;display:flex;align-items:end;gap:13px;transform:rotate(-26deg);opacity:.28}.login-ornament span{display:block;width:42px;border:1px solid #93c5fd;border-radius:6px;height:120px}.login-ornament span:nth-child(2){height:190px}.login-ornament span:nth-child(3){height:250px}.login-ornament span:nth-child(4){height:160px}.login-ornament span:nth-child(5){height:210px}.login-panel{padding:36px;display:flex;flex-direction:column;align-items:center;justify-content:center}.login-card{width:min(100%,410px)}.login-card h2{font-size:30px;letter-spacing:-1px;margin:12px 0 6px;color:#0f172a}.muted{color:#64748b;font-size:14px;line-height:1.6}.login-form{display:grid;gap:10px;margin-top:30px}.login-form label{font-size:13px;font-weight:650;margin-top:7px}.login-form input{height:48px;border:1px solid #cbd5e1;border-radius:8px;padding:0 13px;outline:none;color:#0f172a;background:#fff}.login-form input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb20}.button-primary{border:0;border-radius:8px;min-height:46px;background:#2563eb;color:#fff;font-weight:650;display:inline-flex;justify-content:center;align-items:center;gap:12px;padding:0 18px;cursor:pointer}.button-primary:hover{background:#1d4ed8}.login-form .button-primary{margin-top:14px}.login-security{margin-top:25px;background:#eff6ff;color:#1d4ed8;padding:12px;border-radius:8px;font-size:12px;text-align:center}.login-help{text-align:center;font-size:12px;color:#64748b;margin-top:19px}.login-copyright{position:absolute;bottom:20px;font-size:11px;color:#94a3b8}.alert-error{margin-top:18px;padding:12px;border-radius:8px;background:#fef2f2;color:#b91c1c;font-size:13px}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;background:#0f172a;color:#cbd5e1;padding:25px 16px;display:flex;flex-direction:column;z-index:5}.sidebar .brand{padding:0 10px 34px;color:#fff}.nav-label{display:block;font-size:9px;font-weight:750;letter-spacing:1.15px;color:#64748b;padding:0 12px 10px}.nav-label-spaced{margin-top:26px}.nav-link{height:42px;padding:0 12px;margin:3px 0;display:flex;align-items:center;gap:12px;border-radius:7px;font-size:13px;color:#cbd5e1}.nav-link>span{width:16px;text-align:center;color:#94a3b8}.nav-link:hover,.nav-link.is-active{background:#1e293b;color:#fff}.nav-link.is-active{box-shadow:inset 3px 0 #3b82f6}.sidebar-footer{display:flex;align-items:center;gap:10px;margin-top:auto;padding:14px 11px;border-top:1px solid #243047}.status-dot{width:8px;height:8px;background:#22c55e;border-radius:50%}.sidebar-footer strong,.sidebar-footer small{display:block;font-size:11px}.sidebar-footer small{color:#94a3b8;margin-top:3px}.main-area{margin-left:245px;min-height:100vh}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px}.topbar-context{display:flex;align-items:center;gap:11px;color:#64748b;font-size:12px}.topbar-context strong{color:#1e293b;font-weight:650}.separator{color:#cbd5e1}.topbar-user{display:flex;align-items:center;gap:10px}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#dbeafe;color:#1d4ed8;font-size:13px;font-weight:750}.user-name{font-size:12px;font-weight:650}.logout-button{border:0;background:transparent;color:#64748b;font-size:12px;cursor:pointer}.topbar-user form{margin:0}.menu-toggle{display:none}.page-content{max-width:1440px;margin:auto;padding:34px 36px}.welcome-row{display:flex;align-items:end;justify-content:space-between;margin-bottom:24px}.welcome-row h1{font-size:27px;letter-spacing:-.8px;color:#0f172a;margin:8px 0 0}.welcome-row p{margin:6px 0 0}.date-chip{background:#fff;border:1px solid var(--line);border-radius:7px;padding:9px 12px;font-size:12px;color:#475569}.setup-banner{display:flex;align-items:center;gap:16px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:11px;padding:20px;margin-bottom:22px}.setup-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#dbeafe;color:#1d4ed8;font-weight:800;flex:none}.setup-banner h2{font-size:14px;margin:0 0 5px;color:#1e3a8a}.setup-banner p{font-size:12px;color:#475569;margin:0;line-height:1.55}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:22px}.stat-card,.content-card{background:#fff;border:1px solid var(--line);border-radius:11px}.stat-card{padding:18px}.stat-label{display:block;font-size:9px;letter-spacing:1px;font-weight:750;color:#64748b}.stat-card strong{display:block;font-size:27px;color:#0f172a;margin:13px 0 5px}.stat-card small{font-size:11px;color:#94a3b8}.content-card{padding:22px}.card-heading h2{font-size:15px;color:#0f172a;margin:0 0 4px}.card-heading p{margin:0;font-size:12px}.phase-list{margin-top:20px}.phase-item{display:flex;align-items:center;gap:14px;padding:15px 0;border-top:1px solid #f1f5f9}.phase-item>span{width:31px;height:31px;display:grid;place-items:center;border:1px solid #e2e8f0;border-radius:8px;color:#64748b;font-size:11px;font-weight:700}.phase-item div{flex:1}.phase-item strong,.phase-item small{display:block}.phase-item strong{font-size:12px;color:#1e293b}.phase-item small{font-size:11px;color:#64748b;margin-top:4px}.phase-item>b{font-size:9px;letter-spacing:.6px;color:#2563eb;background:#eff6ff;padding:6px 8px;border-radius:5px}.phase-done>span{background:#eff6ff;color:#2563eb;border-color:#bfdbfe}.error-page{padding:10vh 7vw}.error-page h1{font-size:34px}.error-page p{color:#64748b}.error-page .button-primary{margin-top:12px}
@media(max-width:900px){.login-layout{grid-template-columns:40% 1fr}.login-intro{padding:32px 8%}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar{width:220px}.main-area{margin-left:220px}.page-content{padding:28px 24px}}
@media(max-width:640px){.login-layout{display:block}.login-intro{min-height:230px;padding:24px}.intro-copy{margin:35px 0 14px}.intro-copy h1{font-size:33px;margin:12px 0}.intro-copy p,.intro-foot,.login-ornament{display:none}.login-panel{padding:35px 24px 60px}.login-copyright{position:static;margin-top:40px}.sidebar{transform:translateX(-100%);transition:transform .2s ease;width:270px}.sidebar.is-open{transform:translateX(0);box-shadow:14px 0 35px #0f172a30}.main-area{margin-left:0}.topbar{height:60px;padding:0 16px}.menu-toggle{display:inline-flex;border:0;background:transparent;font-size:20px;color:#334155}.topbar-context>span:first-child,.topbar-context .separator{display:none}.topbar-context{margin-right:auto;margin-left:12px}.user-name{display:none}.page-content{padding:23px 16px}.welcome-row{align-items:start}.welcome-row h1{font-size:23px}.date-chip{font-size:10px;padding:8px}.stats-grid{gap:10px}.stat-card{padding:14px}.stat-card strong{font-size:23px}.setup-banner{align-items:flex-start;padding:15px}.content-card{padding:17px}.phase-item{gap:10px}.phase-item small{max-width:230px;line-height:1.5}}
.admin-tabs{display:flex;gap:5px;overflow:auto;margin:0 0 18px;padding:5px;background:#e9eef6;border-radius:9px;width:max-content;max-width:100%}.admin-tabs a{padding:9px 14px;border-radius:6px;color:#475569;font-size:12px;font-weight:650;white-space:nowrap}.admin-tabs a.is-active{background:#fff;color:#1d4ed8;box-shadow:0 1px 3px #0f172a12}.notice-success,.notice-error{padding:12px 15px;border-radius:8px;margin:0 0 16px;font-size:13px}.notice-success{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.notice-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.admin-card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:21px;margin-bottom:17px}.admin-card-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.admin-card-heading h2{margin:0;color:#0f172a;font-size:15px}.admin-card-heading p{margin:5px 0 0;color:#64748b;font-size:12px}.admin-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.admin-form-grid>label,.role-card>label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:650;color:#334155}.admin-form-grid input,.admin-form-grid select,.role-card>label input{min-width:0;height:39px;border:1px solid #cbd5e1;border-radius:7px;padding:0 10px;color:#1e293b;background:#fff;font:inherit;font-size:12px}.admin-form-grid input:focus,.admin-form-grid select:focus,.role-card>label input:focus{outline:2px solid #bfdbfe;border-color:#3b82f6}.admin-form-grid small{font-weight:400;color:#64748b;line-height:1.5}.admin-form-actions{display:flex;align-items:center;gap:10px;grid-column:1/-1}.admin-form-actions .button-primary,.role-card .button-primary{min-height:39px;font-size:12px}.button-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:39px;padding:0 15px;border:1px solid #cbd5e1;border-radius:7px;color:#334155;font-size:12px;font-weight:650}.table-wrap{width:100%;overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}.admin-table th{padding:10px 11px;background:#f8fafc;color:#64748b;font-size:9px;text-transform:uppercase;letter-spacing:.65px}.admin-table td{padding:12px 11px;border-top:1px solid #f1f5f9;font-size:11px;color:#334155}.admin-table td strong,.admin-table td small{display:block}.admin-table td strong{color:#0f172a;font-size:11px}.admin-table td small{color:#64748b;font-size:10px;margin-top:4px}.status-pill{display:inline-flex;padding:5px 8px;border-radius:99px;font-size:9px;font-weight:700}.status-active{background:#dcfce7;color:#166534}.status-inactive{background:#f1f5f9;color:#64748b}.actions-cell{display:flex;align-items:center;gap:12px}.actions-cell form{margin:0}.text-action{border:0;background:none;color:#2563eb;font:inherit;font-size:11px;font-weight:650;cursor:pointer;padding:0}.text-danger{color:#dc2626}.empty-state{text-align:center!important;color:#64748b!important;padding:30px!important}.choice-field{grid-column:1/-1;min-width:0;border:1px solid #e2e8f0;border-radius:8px;padding:12px}.choice-field legend{padding:0 5px;font-size:11px;font-weight:700;color:#334155}.choice-grid{display:flex;flex-wrap:wrap;gap:8px}.choice-option{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid #e2e8f0;border-radius:7px;font-size:11px;color:#334155;cursor:pointer}.choice-option input{accent-color:#2563eb}.choice-option small{display:block;color:#64748b;font-size:9px}.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.role-card{border:1px solid #e2e8f0;border-radius:9px;padding:16px;display:flex;flex-direction:column;gap:12px}.role-card-heading{display:flex;align-items:center;justify-content:space-between}.role-card-heading h3{font-size:14px;margin:4px 0 0}.role-key{font-size:9px;color:#64748b;letter-spacing:.5px}.permission-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:280px;overflow:auto}.permission-list .choice-option{align-items:flex-start}.permission-list .choice-option span{line-height:1.4}.role-card .button-primary{align-self:flex-start}@media(max-width:900px){.admin-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.role-grid{grid-template-columns:1fr}}@media(max-width:640px){.admin-tabs{width:100%}.admin-tabs a{padding:9px 10px;font-size:11px}.admin-card{padding:15px}.admin-form-grid{grid-template-columns:1fr}.admin-form-actions{grid-column:1}.permission-list{grid-template-columns:1fr}}
