:root{--color-blue-900:#0b3d68;--color-blue-700:#14568f;--color-green-600:#1f9d55;--color-green-700:#187a42;--color-bg:#f5f7fa;--color-surface:#fff;--color-text:#1a2733;--color-text-muted:#4a5a68;--color-border:#d5dde3;--color-danger:#b3261e;--focus-ring:3px solid #79b8ff}*{box-sizing:border-box}html,body{background:var(--color-bg);color:var(--color-text);margin:0;padding:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.5}body{min-height:100vh}a{color:var(--color-blue-700)}button,input,select,textarea{font:inherit}button{cursor:pointer}:focus-visible{outline:var(--focus-ring);outline-offset:2px}.btn-primary{background:var(--color-green-600);color:#fff;border:none;border-radius:6px;min-height:44px;padding:.75rem 1.5rem;font-weight:600}.btn-primary:hover{background:var(--color-green-700)}.btn-primary:disabled{cursor:not-allowed;background:#9bbfa8}.field-label{margin-bottom:.35rem;font-weight:600;display:block}.field-input{border:1px solid var(--color-border);background:var(--color-surface);width:100%;min-height:44px;color:var(--color-text);border-radius:6px;padding:.65rem .75rem;display:block}.error-text{color:var(--color-danger);font-weight:600}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:1.5rem}.topbar{background:var(--color-blue-900);color:#fff;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.topbar a{color:#fff}:root{--color-blue-950:#071f3a;--color-blue-100:#e7f1fb;--color-green-100:#e3f5eb;--shadow-soft:0 24px 70px #0a305224;--shadow-card:0 10px 28px #0a305214}body{background:radial-gradient(circle at 0% 0%, #1f9d5514, transparent 28rem), radial-gradient(circle at 100% 0%, #14568f1f, transparent 32rem), var(--color-bg)}.btn-primary{background:linear-gradient(135deg, var(--color-green-600), #16834b);border-radius:10px;transition:transform .16s,box-shadow .16s,background .16s;box-shadow:0 8px 18px #1f9d5533}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 10px 22px #1f9d5547}.field-input{border-radius:10px;padding:.75rem .9rem;transition:border-color .16s,box-shadow .16s}.field-input:focus{border-color:var(--color-blue-700);outline:none;box-shadow:0 0 0 4px #14568f1f}.card{box-shadow:var(--shadow-card);border-radius:16px}.login-shell{grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);gap:1.25rem;min-height:100vh;padding:1.25rem;display:grid}.login-visual{color:#fff;min-height:650px;box-shadow:var(--shadow-soft);background:linear-gradient(145deg,#0b3d68 0%,#0a5372 52%,#187a42 100%);border-radius:24px;flex-direction:column;justify-content:space-between;padding:clamp(2rem,5vw,5rem);display:flex;position:relative;overflow:hidden}.login-visual:before,.login-visual:after{content:"";pointer-events:none;background:#ffffff1a;border-radius:999px;position:absolute}.login-visual:before{width:28rem;height:28rem;top:-10rem;right:-11rem}.login-visual:after{width:20rem;height:20rem;bottom:-8rem;left:-10rem}.brand-mark,.login-visual-content,.login-visual-footer{z-index:1;position:relative}.brand-mark{letter-spacing:.01em;align-items:center;gap:.7rem;font-weight:700;display:inline-flex}.brand-mark-icon{background:#ffffff29;border:1px solid #ffffff38;border-radius:12px;place-items:center;width:2.7rem;height:2.7rem;display:grid}.login-visual h2{letter-spacing:-.045em;max-width:580px;margin:0 0 1.1rem;font-size:clamp(2.3rem,5vw,4.7rem);line-height:1.03}.login-visual p{color:#fffc;max-width:520px;margin:0;font-size:1.08rem}.login-visual-footer{color:#ffffffb8;gap:.6rem;font-size:.88rem;display:flex}.login-panel{justify-content:center;align-items:center;padding:clamp(1rem,4vw,4rem);display:flex}.login-card{width:100%;max-width:460px;padding:clamp(1.5rem,4vw,2.5rem)}.login-card h1{color:var(--color-blue-950);letter-spacing:-.035em;margin:0;font-size:clamp(1.8rem,3vw,2.35rem)}.login-card .subtitle{color:var(--color-text-muted);margin:.55rem 0 2rem}.login-card .form-actions{justify-content:flex-end;margin-top:1.75rem;display:flex}.login-card .btn-primary{width:100%}@media (max-width:860px){.login-shell{padding:.75rem;display:block}.login-visual{border-radius:18px;min-height:280px;padding:1.5rem}.login-visual h2{max-width:460px;font-size:clamp(2rem,8vw,3.4rem)}.login-visual-footer{display:none}.login-panel{padding:1rem .5rem 2rem}}@media (max-width:480px){.login-visual{min-height:230px}.login-visual p{font-size:.96rem}.login-card{padding:1.35rem}}.app-layout{min-height:100vh;color:var(--color-text)}.app-body{min-height:calc(100vh - 74px);display:flex}.topbar{background:#071f3af7;min-height:74px;padding:0 1.5rem;box-shadow:0 5px 20px #071f3a29}.topbar-brand,.topbar-user{align-items:center;gap:.8rem;min-width:0;display:flex}.topbar-brand{letter-spacing:.01em;font-size:1.08rem}.topbar-mark{color:#fff;background:linear-gradient(145deg,#237eb0,#1f9d55);border-radius:9px;place-items:center;width:2.2rem;height:2.2rem;display:grid}.role-pill{color:#ffffffe0;border:1px solid #ffffff38;border-radius:999px;padding:.35rem .65rem;font-size:.78rem}.logout-button,.nav-toggle{color:#fff;background:0 0;border:1px solid #ffffff52;border-radius:9px;min-height:42px;padding:.5rem .85rem}.logout-button:hover,.nav-toggle:hover{background:#ffffff1a}.nav-toggle{font-size:1.2rem;display:none}.app-sidebar{color:#ffffffe6;background:linear-gradient(#0b3d68,#092e50);flex-direction:column;flex-shrink:0;width:250px;padding:1.2rem .85rem;display:flex}.sidebar-label{color:#ffffff8c;letter-spacing:.1em;text-transform:uppercase;padding:0 .75rem .75rem;font-size:.72rem;font-weight:700}.app-sidebar ul{margin:0;padding:0;list-style:none}.app-sidebar a{color:#ffffffd1;border-radius:10px;align-items:center;gap:.75rem;margin:.18rem 0;padding:.72rem .75rem;font-size:.93rem;text-decoration:none;transition:background .14s,color .14s,transform .14s;display:flex}.app-sidebar a:hover{color:#fff;background:#ffffff1a;transform:translate(2px)}.app-sidebar a.active{color:#fff;background:linear-gradient(90deg,#1f9d55f2,#1f9d55ad);font-weight:700;box-shadow:0 7px 16px #0000001f}.nav-icon{color:#9fd8bc;place-items:center;width:1.5rem;font-size:1.05rem;display:grid}.app-sidebar a.active .nav-icon{color:#fff}.sidebar-footer{color:#ffffff7a;margin-top:auto;padding:1.3rem .75rem .25rem;font-size:.78rem;line-height:1.5}.sidebar-footer span{color:#ffffff4d}.app-main{flex:1;min-width:0;padding:clamp(1.2rem,3vw,2.3rem)}@media (max-width:768px){.topbar{min-height:62px;padding:0 .9rem}.nav-toggle{place-items:center;display:inline-grid}.topbar-email,.role-pill{display:none}.app-body{min-height:calc(100vh - 62px)}.app-sidebar{z-index:20;width:min(82vw,300px);position:fixed;top:62px;bottom:0;left:0;box-shadow:16px 0 35px #0000002e}.app-sidebar:not([data-open=true]){display:none}.app-main{padding:1rem}}.page-heading{justify-content:space-between;align-items:flex-end;gap:1rem;margin:.25rem 0 1.6rem;display:flex}.page-heading h1{color:var(--color-blue-950);letter-spacing:-.04em;margin:.2rem 0 .25rem;font-size:clamp(1.85rem,4vw,2.7rem)}.eyebrow{color:var(--color-green-700);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:800}.page-intro{color:var(--color-text-muted);margin:0}.date-chip{border:1px solid var(--color-border);color:var(--color-text-muted);white-space:nowrap;background:#ffffffb8;border-radius:10px;padding:.65rem .85rem;font-size:.86rem}.dashboard-grid{grid-template-columns:minmax(0,1fr) minmax(250px,.42fr);gap:1rem;display:grid}.dashboard-hero{color:#fff;background:linear-gradient(135deg,#0b3d68,#12627b 60%,#187a42);border:none;min-height:220px;padding:clamp(1.5rem,4vw,2.4rem)}.dashboard-hero h2{letter-spacing:-.04em;max-width:480px;margin:.5rem 0 .8rem;font-size:clamp(1.7rem,4vw,2.5rem);line-height:1.05}.dashboard-hero p{color:#ffffffc2;max-width:520px;margin:0}.hero-kicker{color:#b9efd0;letter-spacing:.1em;text-transform:uppercase;font-size:.78rem;font-weight:800}.dashboard-status{align-items:flex-start;gap:.8rem;min-height:120px;display:flex}.dashboard-status p{color:var(--color-text-muted);margin:.3rem 0 0;font-size:.9rem}.status-dot{background:var(--color-green-600);width:.7rem;height:.7rem;box-shadow:0 0 0 5px var(--color-green-100);border-radius:50%;flex:none;margin-top:.35rem}@media (max-width:700px){.page-heading{flex-direction:column;align-items:flex-start}.date-chip{white-space:normal}.dashboard-grid{grid-template-columns:1fr}}.clients-page>h1{color:var(--color-blue-950);letter-spacing:-.04em;margin:.2rem 0 -.35rem;font-size:clamp(1.85rem,4vw,2.65rem)}.clients-page>.card{border-color:#14568f1f}.clients-page>.card h2{color:var(--color-blue-900);letter-spacing:-.025em}.clients-page>.card:first-of-type{background:linear-gradient(#fff,#f8fbfd)}.clients-page code{color:var(--color-blue-950);background:var(--color-blue-100);border-radius:9px;margin-top:.55rem;padding:.7rem .8rem;display:inline-block}.data-table{font-size:.94rem}.data-table th{color:var(--color-text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.76rem}.data-table tbody tr{transition:background .14s}.data-table tbody tr:hover{background:#f7fafc}.data-table a,.data-table button{border-radius:9px!important}.status-badge{border-radius:999px;padding:.28rem .62rem;font-size:.78rem;font-weight:750;display:inline-block}.status-active{color:#126239;background:var(--color-green-100)}.status-inactive{color:#7c2d27;background:#fde9e7}@media (max-width:680px){.clients-page .data-table{min-width:720px}.clients-page>.card{padding:1rem}}.employees-page>h1{color:var(--color-blue-950);letter-spacing:-.04em;margin:.2rem 0 -.35rem;font-size:clamp(1.85rem,4vw,2.65rem)}.employees-page>.card{border-color:#14568f1f}.employees-page>.card h2{color:var(--color-blue-900);letter-spacing:-.025em}.employees-page>.card:first-of-type{background:linear-gradient(#fff,#f8fbfd)}.employees-page code{color:var(--color-blue-950);background:var(--color-blue-100);border-radius:9px;margin-top:.55rem;padding:.7rem .8rem;display:inline-block}.employees-page .data-table{font-size:.94rem}.employees-page .data-table th{color:var(--color-text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.76rem}.employees-page .data-table tbody tr{transition:background .14s}.employees-page .data-table tbody tr:hover{background:#f7fafc}.employees-page .data-table button{border-radius:9px!important}@media (max-width:680px){.employees-page .data-table{min-width:650px}.employees-page>.card{padding:1rem}}.tasks-page>h1,.time-page>h1{color:var(--color-blue-950);letter-spacing:-.04em;margin:.2rem 0 -.35rem;font-size:clamp(1.85rem,4vw,2.65rem)}.tasks-page>.card,.time-page>.card{border-color:#14568f1f}.tasks-page>.card h2,.time-page>.card h2{color:var(--color-blue-900);letter-spacing:-.025em}.tasks-page>.card:first-of-type,.time-page>.card:first-of-type{background:linear-gradient(#fff,#f8fbfd)}.tasks-page .data-table{font-size:.94rem}.tasks-page .data-table th{color:var(--color-text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.76rem}.tasks-page .data-table tbody tr:hover{background:#f7fafc}.employee-tasks-page .card>div{border-radius:9px}.employee-tasks-page .card>div:hover{background:#f7fafc}.time-page .running-time-card{color:#fff;background:linear-gradient(135deg,#0b3d68,#187a42);border-radius:12px;padding:1rem;box-shadow:0 10px 22px #0a305226}.time-page .running-time-card p{color:#ffffffd1}.time-page .running-time-card .btn-primary{color:var(--color-blue-900);box-shadow:none;background:#fff}.time-page .time-entries-card>.card{border-left:4px solid var(--color-blue-700)}.time-page .time-entries-card>.card:hover{border-left-color:var(--color-green-600)}@media (max-width:680px){.tasks-page>.card,.time-page>.card{padding:1rem}.tasks-page .data-table{min-width:720px}}.documents-panel>.card,.expenses-page>.card,.reports-page>.card{border-color:#14568f1f}.documents-panel h2,.expenses-page h2,.reports-page h2{color:var(--color-blue-900);letter-spacing:-.025em}.documents-panel>.card:first-of-type,.expenses-page>.card:first-of-type,.reports-page>.card:first-of-type{background:linear-gradient(#fff,#f8fbfd)}.documents-panel button,.expenses-page button,.reports-page button{border-radius:9px!important}.documents-panel img,.documents-panel iframe{border-radius:12px;border:1px solid var(--color-border)!important}.documents-panel>.card>div{border-radius:9px}.expenses-page>h1,.reports-page>h1{color:var(--color-blue-950);letter-spacing:-.04em;margin:.2rem 0 -.35rem;font-size:clamp(1.85rem,4vw,2.65rem)}.expenses-page .card>.card{border-left:4px solid var(--color-green-600)}.reports-page .data-table{font-size:.9rem}.reports-page .data-table th{color:var(--color-text-muted);letter-spacing:.04em;font-size:.74rem}.reports-page .data-table tbody tr:hover{background:#f7fafc}@media (max-width:680px){.documents-panel>.card,.expenses-page>.card,.reports-page>.card{padding:1rem}.reports-page .data-table{min-width:780px}}.messaging-panel>h1,.client-portal-page>h1{color:var(--color-blue-950);letter-spacing:-.04em;margin:.2rem 0 -.35rem;font-size:clamp(1.85rem,4vw,2.65rem)}.messaging-panel>.card,.client-portal-page>.card{border-color:#14568f1f}.messaging-panel h2,.client-portal-page h2{color:var(--color-blue-900);letter-spacing:-.025em}.messaging-panel>div[style*=maxHeight],.client-portal-page>.card:first-of-type{background:linear-gradient(#fff,#f8fbfd)}.messaging-panel textarea,.messaging-panel input,.client-portal-page input{border-radius:10px}.messaging-panel form,.client-portal-page form{border-radius:12px}.messaging-panel [style*=maxHeight]>div{border-radius:9px;padding:.55rem .7rem}.messaging-panel [style*=maxHeight]>div:hover{background:#f3f8fb}.client-portal-page>.card>div[style*=marginBottom]{border-left:4px solid var(--color-blue-700);background:#f8fbfd;border-radius:10px;padding:.85rem}@media (max-width:560px){.messaging-panel>div[style*="display: flex"],.client-portal-page form{flex-direction:column}.messaging-panel button,.client-portal-page button{width:100%}}.schedule-page>h1{color:var(--color-blue-950);letter-spacing:-.04em;margin:.2rem 0 -.35rem;font-size:clamp(1.85rem,4vw,2.65rem)}.schedule-page>.card{border-color:#14568f1f}.schedule-page>.card:first-of-type{background:linear-gradient(#fff,#f8fbfd);padding:1rem 1.15rem 1.15rem}.schedule-page .view-switch,.schedule-page .view-switch-active{min-height:40px;font-weight:650;border-radius:9px!important;padding:.5rem 1rem!important}.schedule-page .view-switch{color:var(--color-text-muted);border-color:var(--color-border)!important;background:#fff!important}.schedule-page .view-switch:hover{color:var(--color-blue-700);border-color:var(--color-blue-700)!important;background:var(--color-blue-100)!important}.schedule-page .schedule-item{border-left:4px solid var(--color-green-600);background:#fff;padding:1rem 1.1rem;transition:transform .15s,box-shadow .15s}.schedule-page .schedule-item:hover{transform:translateY(-1px);box-shadow:0 12px 24px #0a30521a}.schedule-page .schedule-item.has-conflict{border-left-color:var(--color-danger);background:snow}.schedule-page .schedule-time{color:var(--color-blue-900);font-size:1.05rem}.schedule-page .schedule-status{color:var(--color-blue-900);background:var(--color-blue-100);border-radius:999px;margin-bottom:.3rem;padding:.25rem .55rem;font-size:.78rem;font-weight:700;display:inline-block}.schedule-page .conflict-list{background:#fff0ef;border-radius:9px;padding:.65rem .8rem .65rem 2rem;font-size:.9rem}.schedule-page select.field-input{min-width:180px}@media (max-width:560px){.schedule-page>.card:first-of-type{padding:.85rem}.schedule-page .schedule-item>div:first-child{gap:.8rem!important}.schedule-page .schedule-item button{min-height:40px!important}.schedule-page select.field-input{min-width:0}}.app-main,.app-main>*{max-width:100%}.app-main{overflow-x:hidden}textarea{resize:vertical}button:not(:disabled),a{-webkit-tap-highlight-color:transparent}@media (max-width:768px){.card{padding:1.15rem}.page-heading{margin-bottom:1.15rem}.page-heading h1,.clients-page>h1,.employees-page>h1,.tasks-page>h1,.time-page>h1,.expenses-page>h1,.reports-page>h1,.messaging-panel>h1,.client-portal-page>h1,.schedule-page>h1{overflow-wrap:anywhere}input,select,textarea,button{max-width:100%}}@media (max-width:480px){html,body{font-size:15px}.app-main{padding:.85rem}.topbar-brand{gap:.55rem;font-size:.98rem}.topbar-mark{width:2rem;height:2rem}.card{border-radius:14px;padding:1rem}.page-heading{gap:.7rem}.page-heading h1,.clients-page>h1,.employees-page>h1,.tasks-page>h1,.time-page>h1,.expenses-page>h1,.reports-page>h1,.messaging-panel>h1,.client-portal-page>h1,.schedule-page>h1{font-size:1.75rem}.form-actions,form[style*="display: flex"]{flex-wrap:wrap}}
