:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f5f7fb;--surface:#fff;--surface-soft:#f8fafc;--text:#172033;--muted:#667085;--border:#dfe4ec;--border-strong:#c7cfdb;--primary:#3157d5;--primary-hover:#2647b8;--primary-soft:#eef2ff;--danger:#b42318;--danger-soft:#fef3f2;--success:#027a48;--shadow:0 14px 40px #16224212;--radius-lg:18px;--radius-md:12px;--radius-sm:8px}*{box-sizing:border-box}html{background:var(--background);min-width:320px}body{color:var(--text);background:var(--background);text-rendering:optimizelegibility;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.5}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:var(--primary);text-underline-offset:3px}a:hover{color:var(--primary-hover)}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.035em;margin-bottom:8px;font-size:clamp(2rem,4vw,3.1rem);line-height:1.08}h2{letter-spacing:-.015em;margin-bottom:0;font-size:1.35rem;line-height:1.25}h3{margin-bottom:8px;font-size:1.05rem}[hidden]{display:none!important}.container{width:min(1160px,100% - 48px);margin-inline:auto}.muted{color:var(--muted)}.eyebrow{color:var(--primary);letter-spacing:.105em;text-transform:uppercase;margin-bottom:7px;font-size:.75rem;font-weight:750}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{min-height:100vh}.app-header{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;border-bottom:1px solid #dfe4ecd9;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:24px;min-height:68px;display:flex}.brand-link{color:var(--text);align-items:center;gap:10px;font-weight:760;text-decoration:none;display:inline-flex}.brand-link:hover{color:var(--text)}.brand-mark{color:#fff;background:linear-gradient(145deg,#4267e8,#253fac);border-radius:14px;place-items:center;width:48px;height:48px;font-size:1.25rem;font-weight:800;display:grid;box-shadow:0 8px 22px #3157d53d}.brand-mark-small{border-radius:10px;width:34px;height:34px;font-size:.95rem}.header-nav{align-items:center;gap:20px;display:flex}.header-nav>a{color:var(--muted);font-size:.925rem;font-weight:650;text-decoration:none}.header-nav>a:hover{color:var(--text)}.app-content{padding-block:50px 80px}.login-page{background:radial-gradient(circle at 20% 10%, #3157d51f, transparent 30%), radial-gradient(circle at 85% 85%, #6d4cff1a, transparent 28%), var(--background);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#fffffff5;border:1px solid #dfe4ece6;border-radius:24px;width:min(100%,430px);padding:42px;box-shadow:0 26px 80px #1622421f}.login-card .brand-mark{margin-bottom:26px}.login-card h1{font-size:2rem}.login-lead{margin-bottom:28px}.button{cursor:pointer;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:43px;padding:9px 17px;font-weight:700;line-height:1.2;text-decoration:none;transition:background-color .16s,border-color .16s,color .16s,transform .16s;display:inline-flex}.button:not(:disabled):active{transform:translateY(1px)}.button:disabled{cursor:wait;opacity:.62}.button-primary{color:#fff;background:var(--primary)}.button-primary:hover:not(:disabled){color:#fff;background:var(--primary-hover)}.button-secondary{color:var(--text);border-color:var(--border-strong);background:var(--surface)}.button-secondary:hover:not(:disabled){color:var(--text);background:var(--surface-soft);border-color:#aab5c5}.button-ghost{min-height:auto;color:var(--muted);background:0 0;padding:7px 11px}.button-ghost:hover:not(:disabled){color:var(--text);background:var(--surface-soft)}.button-small{border-radius:8px;min-height:36px;padding:7px 13px;font-size:.875rem}.button-full{width:100%}.button:focus-visible,.accordion-trigger:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #3157d540}.stack-form{gap:18px;display:grid}.field{color:#344054;gap:7px;font-size:.875rem;font-weight:650;display:grid}.field input,.field select,.field textarea,.filter-field select{border:1px solid var(--border-strong);width:100%;color:var(--text);background:var(--surface);border-radius:9px;transition:border-color .15s,box-shadow .15s;box-shadow:0 1px 2px #1018280a}.field input,.field select,.filter-field select{min-height:44px;padding:9px 12px}.field textarea{resize:vertical;min-height:88px;padding:10px 12px}.field input:hover,.field select:hover,.field textarea:hover,.filter-field select:hover{border-color:#9ca8ba}.field input:disabled,.field select:disabled,.field textarea:disabled{color:var(--muted);background:#f2f4f7}.form-error{border-radius:var(--radius-sm);color:var(--danger);background:var(--danger-soft);border:1px solid #fecdca;margin:2px 0 0;padding:10px 12px;font-size:.875rem}.page-heading{justify-content:space-between;align-items:flex-start;gap:32px;margin-bottom:38px;display:flex}.page-heading>div>p:last-child{margin-bottom:0}.create-project-section{flex-direction:column;align-items:flex-end;display:flex}.panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}.create-form{width:min(790px,100vw - 48px);margin-top:14px;padding:28px}.section-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;padding-bottom:22px;display:flex}.compact-heading{margin-bottom:20px;padding-bottom:17px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.field-span-2{grid-column:span 2}.form-actions{justify-content:flex-end;margin-top:22px;display:flex}.list-toolbar{justify-content:space-between;align-items:end;gap:24px;min-height:50px;margin-bottom:16px;display:flex}.result-count{color:var(--muted);font-size:.9rem;font-weight:620}.filter-field{color:var(--muted);align-items:center;gap:10px;font-size:.875rem;font-weight:650;display:flex}.filter-field select{width:auto;min-width:190px}.project-list{gap:12px;display:grid}.load-more-row{justify-content:center;margin-top:22px;display:flex}.project-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);transition:border-color .16s,box-shadow .16s;overflow:hidden;box-shadow:0 5px 20px #1622420a}.project-card:has(.accordion-trigger[aria-expanded=true]){border-color:#bdc8e7;box-shadow:0 10px 28px #16224212}.accordion-trigger{width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto 24px;align-items:center;gap:18px;padding:19px 22px;display:grid}.accordion-trigger:hover{background:#fbfcfe}.accordion-main{gap:4px;min-width:0;display:grid}.project-name{text-overflow:ellipsis;white-space:nowrap;font-size:1.025rem;font-weight:740;overflow:hidden}.project-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;font-weight:500;overflow:hidden}.status-badge{white-space:nowrap;border-radius:999px;align-items:center;width:fit-content;min-height:27px;padding:4px 9px;font-size:.75rem;font-weight:750;display:inline-flex}.status-pending_approval{color:#854a0e;background:#fff5d9}.status-in_progress{color:#175cd3;background:#eff8ff}.status-in_review{color:#6941c6;background:#f4f3ff}.status-closed{color:#344054;background:#f2f4f7}.chevron{color:var(--muted);text-align:center;font-size:1rem;transition:transform .17s}.accordion-trigger[aria-expanded=true] .chevron{transform:rotate(180deg)}.accordion-panel{border-top:1px solid var(--border);padding:0 22px 20px}.quick-details,.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px;margin:0;padding:22px 0;display:grid}.quick-details dt,.detail-grid dt,.answer-list dt{color:var(--muted);letter-spacing:.025em;text-transform:uppercase;margin-bottom:5px;font-size:.75rem;font-weight:680}.quick-details dd,.detail-grid dd,.answer-list dd{overflow-wrap:anywhere;white-space:pre-wrap;margin:0}.detail-wide{grid-column:1/-1}.card-actions{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:18px;padding-top:16px;font-size:.875rem;display:flex}.loading-state,.empty-state,.error-state{border:1px dashed var(--border-strong);border-radius:var(--radius-md);text-align:center;padding:42px 24px}.loading-state{color:var(--muted)}.empty-state h3,.empty-state p{margin-bottom:6px}.error-state{color:var(--danger);background:var(--danger-soft);border-color:#fecdca}.error-state .button{margin-top:10px}.page-loading,.page-error{margin-top:50px}.back-link{color:var(--muted);margin-bottom:26px;font-size:.9rem;font-weight:650;text-decoration:none;display:inline-block}.back-link:hover{color:var(--text)}.project-hero{justify-content:space-between;align-items:flex-start;gap:28px;margin-bottom:34px;display:flex}.project-hero h1{max-width:780px}.project-hero p:last-child{margin-bottom:0}.project-hero>.status-badge{margin-top:8px}.details-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:24px;display:grid}.details-main{gap:24px;min-width:0;display:grid}.details-main>.panel,.details-sidebar>.panel{padding:28px}.detail-grid{padding:0}.extended-answers{border-top:1px solid var(--border);margin-top:26px;padding-top:26px}.answer-list{gap:18px;margin:18px 0 0;display:grid}.answer-list>div{border-radius:var(--radius-sm);background:var(--surface-soft);padding:16px}.sticky-panel{position:sticky;top:92px}.compact-form{gap:15px}.save-message{min-height:21px;color:var(--success);margin:12px 0;font-size:.85rem;font-weight:650}.time-heading{align-items:center}.hours-total{text-align:right;min-width:110px;display:grid}.hours-total strong{color:var(--primary);font-size:1.55rem;line-height:1}.hours-total span{color:var(--muted);margin-top:4px;font-size:.75rem}.time-form{grid-template-columns:150px minmax(200px,1fr) 100px auto;align-items:end;gap:12px;display:grid}.time-submit{min-height:44px}.empty-inline{border-top:1px solid var(--border);text-align:center;margin:26px 0 0;padding-top:22px}.time-log-table-wrap{border:1px solid var(--border);border-radius:10px;margin-top:28px;overflow-x:auto}.time-log-table{border-collapse:collapse;width:100%;font-size:.875rem}.time-log-table th,.time-log-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:13px 14px}.time-log-table th{color:var(--muted);background:var(--surface-soft);letter-spacing:.03em;text-transform:uppercase;font-size:.75rem}.time-log-table tbody tr:last-child td{border-bottom:0}.time-log-table td:first-child{white-space:nowrap}.time-log-table .number-cell{text-align:right;white-space:nowrap}@media (max-width:920px){.details-layout{grid-template-columns:1fr}.details-sidebar{grid-row:1}.sticky-panel{position:static}.time-form{grid-template-columns:1fr 1fr}.time-description{grid-area:2/1/auto/-1}.time-submit{grid-column:2}}@media (max-width:680px){.container{width:min(100% - 28px,1160px)}.app-content{padding-block:34px 58px}.header-nav>a{display:none}.login-page{padding:14px}.login-card{border-radius:18px;padding:28px 24px}.page-heading{gap:22px;display:grid}.create-project-section{align-items:stretch}.create-project-section>.button{width:100%}.create-form{width:100%;padding:20px}.form-grid,.quick-details,.detail-grid{grid-template-columns:1fr}.field-span-2,.detail-wide{grid-column:auto}.list-toolbar{flex-direction:column-reverse;align-items:stretch;gap:10px}.filter-field{flex-direction:column;align-items:stretch}.filter-field select{width:100%}.accordion-trigger{grid-template-columns:minmax(0,1fr) 20px;gap:12px;padding:17px}.accordion-trigger .status-badge{grid-area:2/1}.accordion-trigger .chevron{grid-area:1/2/span 2}.accordion-panel{padding-inline:17px}.card-actions{flex-direction:column;align-items:stretch}.project-hero{flex-direction:column;gap:12px}.details-main>.panel,.details-sidebar>.panel{padding:20px}.section-heading{margin-bottom:20px;padding-bottom:18px}.time-form{grid-template-columns:1fr}.time-description,.time-submit{grid-area:auto}.time-log-table th:nth-child(3),.time-log-table td:nth-child(3){display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.profile-nav-link{border-radius:8px;gap:1px;padding:5px 8px;line-height:1.15;display:grid}.profile-nav-link small{color:var(--muted);font-size:.7rem;font-weight:550}.auth-loading{background:var(--background);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-loading>*{width:min(100%,560px)}.auth-error h1{margin-bottom:8px;font-size:1.5rem}.auth-error .form-actions{justify-content:center}.field-hint{color:var(--muted);font-size:.78rem;font-weight:500}.auth-switch{color:var(--muted);text-align:center;margin:2px 0 0;font-size:.875rem}.form-notice{border-radius:var(--radius-sm);color:#067647;background:#ecfdf3;border:1px solid #a6f4c5;margin:2px 0 0;padding:10px 12px;font-size:.875rem}.role-badge,.request-status,.inactive-label{white-space:nowrap;border-radius:999px;align-items:center;min-height:28px;padding:4px 9px;font-size:.78rem;font-weight:750;display:inline-flex}.role-admin{color:#5925dc;background:#f4f3ff}.role-user{color:#175cd3;background:#eff8ff}.role-guest{color:#475467;background:#f2f4f7}.account-heading{align-items:center}.account-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.account-panel{padding:28px}.account-panel-wide{grid-column:1/-1}.account-panel .button{justify-self:start}.account-panel-lead{margin-top:-8px;margin-bottom:22px}.form-grid-spacer{display:block}.guest-layout{grid-template-columns:minmax(0,1.7fr) minmax(260px,.8fr);align-items:start;gap:24px;display:grid}.guest-card,.guest-account,.admin-users-panel{padding:28px}.access-status{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-soft);gap:8px;padding:20px;display:grid}.access-status strong{font-size:1.05rem}.access-status p,.access-status small{margin:0}.access-status small{color:var(--muted)}.access-status-pending{background:#fffaeb;border-color:#fedf89}.access-status-approved{background:#ecfdf3;border-color:#a6f4c5}.access-status-rejected{background:#fef3f2;border-color:#fecdca}.guest-actions{justify-content:flex-start;gap:10px}.account-summary{gap:17px;margin:20px 0 0;display:grid}.account-summary>div{gap:4px;display:grid}.account-summary dt{color:var(--muted);letter-spacing:.035em;text-transform:uppercase;font-size:.76rem;font-weight:700}.account-summary dd{overflow-wrap:anywhere;font-weight:650}.admin-users-toolbar{border-bottom:1px solid var(--border);align-items:center;padding-bottom:18px}.admin-users-toolbar h2{margin-bottom:3px}.request-counter{color:var(--muted);background:var(--surface-soft);border-radius:999px;padding:7px 11px;font-size:.82rem;font-weight:700}.request-counter.has-pending{color:#93370d;background:#fffaeb}.admin-users-table-wrap{overflow-x:auto}.admin-users-table{border-collapse:collapse;width:100%}.admin-users-table th,.admin-users-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:15px 12px}.admin-users-table th{color:var(--muted);letter-spacing:.035em;text-transform:uppercase;font-size:.75rem;font-weight:750}.admin-users-table tbody tr:last-child td{border-bottom:0}.admin-users-table td:first-child{gap:3px;min-width:210px;display:grid}.admin-users-table td:first-child a{color:var(--muted);font-size:.84rem;font-weight:500}.inactive-label{width:fit-content;min-height:24px;color:var(--danger);background:var(--danger-soft)}.request-pending{color:#93370d;background:#fffaeb}.request-approved{color:#067647;background:#ecfdf3}.request-rejected{color:#b42318;background:#fef3f2}.user-action-cell{min-width:160px;text-align:right!important}.user-action-buttons{justify-content:flex-end;gap:8px;display:flex}@media (max-width:900px){.account-grid,.guest-layout{grid-template-columns:1fr}.account-panel-wide{grid-column:auto}}@media (max-width:680px){.header-inner{gap:10px}.header-nav{gap:4px}.header-nav>a.nav-secondary,.brand-link>span:last-child{display:none}.header-nav>a.nav-admin{padding:7px 8px;font-size:.76rem;display:inline-flex}.profile-nav-link{max-width:92px;display:grid!important}.profile-nav-link span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.profile-nav-link small{display:none}.account-panel,.guest-card,.guest-account,.admin-users-panel{padding:20px}.form-grid-spacer{display:none}.guest-actions{flex-direction:column;align-items:stretch}.guest-actions .button{width:100%}.admin-users-toolbar{align-items:flex-start}.admin-users-table th:nth-child(4),.admin-users-table td:nth-child(4){display:none}}
