:root{font-family:Inter,"Segoe UI",sans-serif;color:#202d2b;background:#f6f7f9;font-synthesis:none;--accent:#227361;--border:#e6e9ed;--muted:#77817e}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button{cursor:pointer;background:white;border:1px solid var(--border);border-radius:7px;padding:10px 14px;color:inherit;font-size:13px;font-weight:550}button:hover{background:#f0f5f2}button:disabled{opacity:.5;cursor:wait}a{color:inherit;text-decoration:none}.primary{background:var(--accent);color:white;border-color:var(--accent)}.primary:hover{background:#195b4d}aside{position:fixed;width:236px;height:100vh;background:#fff;border-right:1px solid var(--border);padding:35px 20px;display:flex;flex-direction:column}.brand{display:flex;gap:11px;color:var(--accent);font-size:35px;font-weight:700;align-items:center;margin:0 8px 52px}.brand span{font-size:29px;letter-spacing:-1.3px}.brand small{display:block;font-size:8px;letter-spacing:1.5px;color:var(--muted);margin-top:6px}.nav-label{font-size:10px;letter-spacing:1.4px;color:#939b99;margin:0 12px 13px}nav{display:grid;gap:6px;margin-bottom:34px}nav button{display:flex;gap:13px;text-align:left;border:0;background:none;color:#72807a;padding:13px;font-size:15px}nav button span{font-size:13px}nav button.active{background:#eaf3ef;color:#216c58;font-weight:650}.sidebar-bottom{margin-top:auto;font-size:12px;color:#78847e}.sidebar-bottom a{display:block;padding:12px}.local{border-top:1px solid var(--border);padding:20px 9px 0;margin-top:15px;font-size:11px}.local i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#5b9a72;margin-right:7px}main{margin-left:236px}header{height:73px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 40px;font-size:12px;color:var(--muted);background:#fff}header b{padding:0 12px;color:#c5cbca}#breadcrumb{color:#35463d}.workspace{max-width:1600px;margin:auto;padding:36px 40px}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}.eyebrow{font-size:9px;font-weight:650;letter-spacing:1.7px;color:#7f9388}h1{font-size:30px;letter-spacing:-1px;margin:10px 0}p{font-size:13px;color:var(--muted);line-height:1.6;margin:0}.actions{display:flex;gap:9px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.stat{border:1px solid var(--border);background:white;border-radius:10px;padding:20px 22px}.stat-label{font-size:12px;color:#76837d}.stat-value{font-size:28px;letter-spacing:-.8px;margin:12px 0 6px;font-weight:600}.stat small{font-size:11px;color:#849089}.stat:first-child{border-top:3px solid var(--accent);padding-top:18px}.panel{background:white;border:1px solid var(--border);border-radius:10px;overflow:hidden}.panel-top{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--border);gap:15px}#tabs{display:flex;gap:5px;align-items:center}#tabs button{border:0;background:transparent;color:#7b8680}#tabs button.selected{background:#edf5f0;color:#24715d}#view-switch{display:flex;background:#f6f7f8;border-radius:6px;padding:3px}#view-switch button{border:0;background:transparent;padding:7px 10px;font-size:11px}#view-switch .selected{background:white;box-shadow:0 1px 4px #0001}.filters{display:flex;gap:10px;padding:18px 20px;flex-wrap:wrap}.filters input,.filters select{padding:9px 11px;border:1px solid var(--border);border-radius:6px;font-size:12px;background:#fff;color:#65746c;max-width:210px}.filters input[type=search]{flex:1;min-width:190px;max-width:none}.filters label{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:6px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{background:#fafbfc;border-block:1px solid var(--border);font-weight:500;color:#87918b;padding:13px 16px;white-space:nowrap}td{padding:15px 16px;border-bottom:1px solid #f0f1f3}td:first-child,th:first-child{padding-left:22px}td small{display:block;font-size:10px;color:#89938d;margin-top:5px}.inline{border:1px solid transparent;border-radius:4px;background:transparent;color:inherit;padding:6px 3px;width:100%;min-width:95px;font-size:12px}.inline:hover,.inline:focus{border-color:var(--border);background:#fff}.title-input{min-width:180px;font-weight:550}.task-title{display:flex;align-items:center;gap:8px}.check{min-width:18px;width:18px;height:18px;padding:0;border-radius:50%;color:var(--accent);font-size:11px}.done{color:#a0aaa4;text-decoration:line-through}.pill{display:inline-block;border-radius:5px;background:#f2f4f6;padding:6px 9px;font-size:10px;color:#6c7770}.pill.high{background:#fdf0e9;color:#b76d46}.pill.green{background:#edf6f0;color:#488465}.row-actions{display:flex;gap:5px;white-space:nowrap}.row-actions button{padding:6px 8px;font-size:11px}.time-btn{color:var(--accent);background:#f1f7f4;border:0}.muted{color:var(--muted)}footer{font-size:11px;color:#8a948e;display:flex;justify-content:space-between;padding:15px 22px}.hint{font-size:11px;text-align:center;padding-top:20px}.empty{padding:60px 20px;text-align:center}.empty .empty-icon{font-size:30px;color:#5b927c;background:#eff6f1;border-radius:14px;width:60px;padding:10px;margin:0 auto 18px}.empty h3{font-size:17px;font-weight:550}.empty p{max-width:430px;margin:0 auto 20px}.cards{padding:20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.card{border:1px solid var(--border);border-radius:9px;padding:20px}.card h3{font-size:15px;margin:16px 0 8px}.card-top,.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px}.card-bottom{margin-top:24px;border-top:1px solid var(--border);padding-top:15px;font-size:11px}.card p{font-size:12px}.card .row-actions{margin-top:14px}dialog{border:1px solid var(--border);border-radius:14px;padding:26px;width:540px;max-width:calc(100vw - 30px);max-height:90vh;color:#293a32;box-shadow:0 24px 90px #14251e30}dialog::backdrop{background:#152c2555;backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}h2{font-size:21px;margin:0}.modal-head button{border:0}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:15px;font-size:12px;color:#627068}.field input,.field select,.field textarea{width:100%;border:1px solid #dce2de;border-radius:6px;padding:10px;background:#fff;color:#263b30}.field textarea{min-height:90px;resize:vertical}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-help{background:#f0f6f2;padding:12px;border-radius:6px;margin-bottom:18px;font-size:12px}#form-error{color:#b74735}#toast{position:fixed;bottom:25px;left:50%;background:#263e32;color:white;padding:12px 22px;border-radius:8px;font-size:13px;box-shadow:0 5px 25px #0002;display:none;z-index:10}.delete{color:#b15c4b}.summary{padding:0 20px 18px;display:flex;flex-wrap:wrap;gap:8px}.summary span{padding:8px 12px;border-radius:6px;background:#f3f7f4;font-size:11px}@media(min-width:1500px){.workspace{padding-top:48px}}@media(max-width:1100px){aside{width:190px;padding-inline:12px}main{margin-left:190px}.workspace{padding:25px 20px}.heading{align-items:flex-start;flex-direction:column}.stats{gap:10px}.stat{padding:16px}.stat-value{font-size:24px}header{padding-inline:20px}}@media(max-width:720px){aside{position:static;width:100%;height:auto;padding:16px;display:block}.brand{font-size:24px;margin:0 0 15px}.brand small,.nav-label,.sidebar-bottom{display:none}nav{display:flex;margin:0;flex-wrap:wrap;gap:0}nav button{padding:9px;font-size:12px}nav button span{font-size:11px}main{margin:0}header{height:50px;font-size:10px}.workspace{padding:20px 12px}.stats{grid-template-columns:1fr 1fr}.panel-top{padding:10px;flex-wrap:wrap}.filters{padding:12px}.actions{flex-wrap:wrap}.field-row{grid-template-columns:1fr}.eyebrow{font-size:8px}}
[hidden]{display:none!important}
.client-search{display:flex;flex-direction:column;gap:6px;min-width:180px}.client-search input,.client-search select{width:100%;max-width:none}.client-search small{font-size:10px;color:var(--muted)}.client-search small:empty{display:none}.filters{align-items:flex-start}.filters .client-search{max-width:240px}.hours-input{width:85px;min-width:70px;border-color:var(--border);background:#fafcfb}.sessions{min-width:110px}.sessions label{display:block;padding:4px 0;font-size:11px}.sessions label+label{margin-top:8px;border-top:1px solid var(--border)}.sessions input{display:block;margin-top:6px}.kanban{display:grid;grid-template-columns:repeat(3,minmax(250px,1fr));gap:16px;padding:20px;overflow-x:auto}.kanban-column{background:#f5f7f6;border-radius:10px;padding:14px;min-height:320px}.kanban-column>h3{font-size:13px;display:flex;justify-content:space-between;margin:4px 0 20px}.kanban-column>h3 span{color:var(--muted)}.kanban .card{background:white;margin-bottom:14px;cursor:grab}.kanban .card:active{cursor:grabbing}.kanban .field{margin:14px 0 0}.kanban-empty{padding:30px 8px;font-size:12px;text-align:center}

.client-combo{position:relative;min-width:210px}.client-combo>input{width:100%;max-width:none!important;padding-right:30px}.client-options{position:absolute;top:42px;left:0;right:0;max-height:240px;overflow-y:auto;background:white;border:1px solid #dce5df;box-shadow:0 10px 30px #183e2520;border-radius:8px;z-index:30;padding:5px}.client-option{padding:11px 12px;cursor:pointer;font-size:12px;border-radius:5px;color:#30483c}.client-option:hover,.client-option.highlight{background:#eaf4ed}.client-option[aria-selected=true]{font-weight:650;color:#227361}.client-empty{font-size:12px;padding:14px;color:#77817e;line-height:1.6}.client-feedback{font-size:10px;color:#77817e;display:block;margin-top:5px}.client-feedback:empty{display:none}.field-error{display:block;color:#b33e30;font-size:12px;line-height:1.5;margin-top:5px}.field [aria-invalid=true]{border:1px solid #c85345!important;background:#fff8f6}.panel{overflow:visible}.filters .client-combo{max-width:260px}.client-combo input:disabled{background:#f1f4f2;color:#718078;cursor:not-allowed}

.task-files{margin-top:22px;border-top:1px solid var(--border);padding-top:12px}.task-files h3{font-size:14px}#file-drop{border:2px dashed #cdded4;border-radius:8px;text-align:center;padding:22px 12px;cursor:pointer;background:#f8fbf9}#file-drop span{display:block;font-size:11px;color:var(--muted);margin-top:8px}#file-drop.dragging{background:#dff2e5;border-color:var(--accent)}.file-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;font-size:12px;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.file-row a{color:var(--accent)}.file-row small{color:var(--muted);display:block}.file-row button{padding:5px 9px}#file-error{color:#b33e30;font-size:12px}

.date-shell{display:inline-flex;position:relative;align-items:center;min-width:145px;max-width:100%;flex-wrap:wrap}.date-shell>input[type=text]{width:100%;padding-right:38px!important;min-width:0}.date-shell>.calendar-native{position:absolute;top:0;right:0;opacity:0;width:35px!important;height:37px;min-width:0!important;padding:0!important;cursor:pointer}.calendar-icon{position:absolute;right:11px;top:10px;pointer-events:none;color:#227361}.date-error{color:#b33e30;font-size:11px;white-space:normal}.date-error:empty{display:none}.field .date-shell{display:flex;width:100%}.filters .date-shell{width:155px}.time-card{background:#f2f7f4;border:1px solid #dce9e0;border-radius:10px;padding:18px;margin-bottom:18px}.time-card h3{font-size:15px;margin:0 0 16px}.time-card .field{margin-bottom:12px}.time-card>small{font-size:10px;color:#6b7c72;display:block;margin-top:10px}.time-card p{font-size:12px}input[data-clock]{font-variant-numeric:tabular-nums}.date-shell>input[type=text][aria-invalid=true]{border-color:#b33e30}

/* Keep form actions visible while only the body scrolls. */
#modal{padding:0;overflow:hidden}#editor{display:flex;flex-direction:column;max-height:calc(90vh - 2px)}#editor .modal-head{flex-shrink:0;margin:0;padding:18px 22px;border-bottom:1px solid var(--border);gap:14px;background:#fff}#editor .modal-head h2{font-size:19px;line-height:1.3;min-width:0}.modal-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}#editor .modal-actions button{border:1px solid var(--border)}#editor .modal-actions .primary{border-color:var(--accent)}#editor .modal-actions #close{border:0;padding:8px}.modal-body{overflow-y:auto;min-height:0;padding:22px 26px;scroll-padding-top:18px}
/* Match the inline date editor to the row's other controls. */
.table-wrap .date-shell{width:142px;min-width:142px;vertical-align:middle}.table-wrap .date-shell>input[type=text]{height:34px;padding:7px 34px 7px 9px!important;border:1px solid var(--border);border-radius:6px;background:#fff;font-size:12px;line-height:18px;font-variant-numeric:tabular-nums}.table-wrap .date-shell>input[type=text]:focus{border-color:var(--accent)}.table-wrap .date-shell>.calendar-native{height:34px;width:32px!important}.table-wrap .calendar-icon{top:8px;right:10px;line-height:18px}.table-wrap .date-error{max-width:142px;line-height:1.4}.table-wrap td:has(.date-shell)>small{max-width:160px;line-height:1.4;margin-top:6px}
@media(max-width:520px){#editor .modal-head{flex-wrap:wrap;padding:15px 16px;gap:12px}.modal-actions{margin-left:auto}.modal-body{padding:18px 16px}}

.task-option{display:flex;align-items:center;justify-content:space-between;gap:14px;overflow-wrap:anywhere}.task-status{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;font-size:10px;font-weight:500;padding:3px 7px;border-radius:5px;white-space:nowrap}.task-status::before,.status-dot{content:'';width:6px;height:6px;border-radius:50%;flex-shrink:0;background:#b68a36}.task-status.pending{color:#8c6b26;background:#faf3df}.task-status.progress{color:#3d74a9;background:#edf4fc}.task-status.complete{color:#347c56;background:#eaf6ef}.task-status.progress::before,.status-dot.progress{background:#518acc}.task-status.complete::before,.status-dot.complete{background:#419866}.client-combo>.task-status{margin-top:6px}

.create-client{align-self:flex-start;margin-top:7px;padding:5px 8px;font-size:11px;color:var(--accent);background:#f1f7f4;border:1px solid #dce9e0}.quick-client-dialog{padding:0;width:520px}.quick-client-head{padding:18px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.quick-client-head h2{font-size:18px}.quick-client-body{padding:22px}.quick-client-error{color:#b33e30;font-size:12px}.quick-client-dialog [aria-invalid=true]{border-color:#b33e30}.quick-client-dialog .modal-actions{margin-left:auto}
.can-create-client>input{padding-right:110px!important}.can-create-client>.create-client{position:absolute;right:4px;top:4px;margin:0;z-index:1;height:29px}.can-create-client>input::-webkit-search-cancel-button{display:none}.filters .can-create-client{min-width:260px}

.export-dialog{padding:0;width:570px}.export-dialog .quick-client-body{padding:22px}.export-preview{padding:12px;background:#edf6f0;border-radius:6px;font-weight:600;color:#29664c}.export-error{color:#b33e30;font-size:12px;margin-top:10px}.export-dialog .hint{text-align:left}

.signed-out>aside,.signed-out>main{display:none}#account-gate{min-height:100vh;display:grid;place-items:center;padding:25px;background:#edf3ef}.login-card{background:white;border:1px solid var(--border);border-radius:16px;padding:38px;width:430px;max-width:100%;box-shadow:0 15px 60px #1938250d}.login-brand{font-size:32px;letter-spacing:-1px;color:var(--accent);font-weight:700}.login-card h1{font-size:24px;margin:24px 0 12px}.login-card form{margin-top:24px}.login-card form>button{width:100%;margin-top:12px}.login-error{color:#b33e30}.regular-user .create-client{display:none}.regular-user .can-create-client>input{padding-right:12px!important}#account-controls{display:flex;align-items:center;gap:8px;font-size:11px}#account-controls button{font-size:11px;padding:6px 8px}.password-dialog h2{margin-bottom:22px}.password-dialog [role=alert]{color:#b33e30}.password-dialog .modal-actions{justify-content:flex-end;margin-top:18px}@media(max-width:900px){header{height:auto;min-height:73px;flex-wrap:wrap;gap:10px;padding-block:12px}#today{display:none}}
