:root{--dark:#17251e;--dark2:#203329;--lime:#c4ef79;--green:#4d8062;--bg:#f5f6f1;--surface:#fffefa;--line:#e2e8df;--ink:#233129;--muted:#809087;--sidebar:248px;--shadow:0 8px 32px #182b1c0a}
*{box-sizing:border-box}html{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{text-decoration:none;color:inherit}[hidden]{display:none!important}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid #8abf9a;outline-offset:2px}
.shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:var(--dark);color:#eaf2e7;display:flex;flex-direction:column;padding:24px 14px 16px;z-index:5}.brand{display:flex;align-items:center;gap:10px;font-weight:900;letter-spacing:.12em;font-size:15px;margin:0 9px 31px;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:32px;height:32px;background:var(--lime);border-radius:9px;color:var(--dark);font-size:16px;letter-spacing:-.06em}.workspace-title{display:flex;align-items:center;gap:12px;padding:12px;background:#2a4133;border:1px solid #3c5844;border-radius:13px;margin:0 4px 26px}.workspace-icon{background:#c4ef79;color:#28432c;border-radius:10px;font-size:23px;display:grid;place-items:center;width:37px;height:37px;flex:none}.workspace-title strong,.side-footer strong{display:block;font-size:12px}.workspace-title small,.side-footer small{display:block;color:#acbdaf;font-size:10px;margin-top:4px}.side-label{font-size:9px;color:#899b8b;letter-spacing:.15em;font-weight:850;margin:4px 17px 10px}.side-nav{display:flex;flex-direction:column;gap:4px;overflow-y:auto;flex:1}.nav-link{display:flex;align-items:center;gap:11px;text-align:left;background:transparent;border:1px solid transparent;border-radius:10px;color:#c8d5c8;padding:11px 13px;font-weight:700;font-size:12px}.nav-icon{font-size:19px;width:24px;text-align:center;line-height:1}.nav-link:hover{background:#2b4133;color:#fff}.nav-link.active{background:#344d3a;border-color:#436848;color:#e8ffc7}.nav-link.active .nav-icon{color:var(--lime)}.side-sep{height:1px;background:#324638;margin:12px 10px}.side-footer{border:1px solid #3a5040;border-radius:12px;padding:13px 12px;display:flex;align-items:center;gap:11px}.online-dot{width:9px;height:9px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 4px #c4ef7925;flex:none}.back-link{color:#b1c1b3;font-size:11px;padding:16px 12px 4px;font-weight:650}.back-link:hover{color:#fff}
.main-area{min-width:0;display:flex;flex-direction:column}.topbar{padding:30px 38px 26px;display:flex;align-items:center;justify-content:space-between;gap:20px}.eyebrow{color:var(--green);font-size:10px;font-weight:850;letter-spacing:.14em}.eyebrow span{color:#b4c1b7;margin:0 4px}h1{font-size:31px;letter-spacing:-.055em;line-height:1.2;margin:7px 0 0;font-weight:850}.subtitle{font-size:12px;color:var(--muted);margin:8px 0 0}.topbar-actions{display:flex;align-items:center;gap:12px}.cloud-status{white-space:nowrap;color:#66856d;font-size:11px;font-weight:750}.cloud-status.error{color:#b65c4a}.cloud-status.loading{color:#8b8f6c}.btn{border:1px solid var(--line);border-radius:11px;padding:11px 16px;font-size:12px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;transition:background .14s,transform .14s}.btn:not(:disabled):hover{transform:translateY(-1px)}.btn-primary{background:var(--dark);color:#fff;border-color:var(--dark)}.btn-primary:hover{background:#2b4933}.btn-light{background:var(--surface);color:#37513d;border-color:#dce4d8}.btn-light:hover{background:#f0f5ec}.btn-lime{background:var(--lime);color:#263d24;border-color:#b5e969}.btn-lime:hover{background:#b1df62}.btn-danger{background:#bd5548;color:#fff;border-color:#bd5548}.btn-small{padding:8px 12px;font-size:11px}.icon-btn{display:inline-grid;place-items:center;width:32px;height:32px;border:1px solid transparent;border-radius:9px;background:transparent;color:#68816c;font-size:15px}.icon-btn:hover{background:#edf3e9;border-color:#dae6d7}.page-content{width:100%;max-width:1600px;padding:0 38px 40px;flex:1}.footer{display:flex;justify-content:space-between;gap:12px;color:#98a69a;font-size:10px;padding:8px 38px 25px}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);min-width:0}.section-title{font-weight:850;font-size:16px;letter-spacing:-.03em;margin:0}.section-description{color:var(--muted);font-size:12px;margin:5px 0 0}.section-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:27px 0 15px}.muted{color:var(--muted)}.small{font-size:11px}.strong{font-weight:800}.pill{display:inline-flex;align-items:center;border-radius:20px;padding:5px 9px;background:#edf3e9;color:#517659;font-size:10px;font-weight:800;gap:6px}.pill.neutral{background:#f0f2ee;color:#88978c}.pill.blue{background:#e8f1fb;color:#5c86b4}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;vertical-align:middle;flex:none}
.tracker-card{padding:21px 23px;display:flex;align-items:center;gap:15px;min-height:103px}.tracker-card.running{border-color:#a2cba4;background:linear-gradient(120deg,#fffefa,#f6fbed)}.tracker-desc{flex:1;min-width:130px;display:flex;align-items:center;gap:12px}.tracker-desc input{width:100%;min-width:0;padding:11px 4px;border:0;background:transparent;outline:0;font-size:15px;color:var(--ink);font-weight:650}.tracker-desc input::placeholder{color:#a3afa5;font-weight:500}.field-inline{display:flex;align-items:center;gap:9px;min-width:0}.picker-select{min-width:150px;max-width:210px;border:1px solid #dbe5d9;border-radius:10px;padding:12px 11px;background:#fbfdf9;color:#506956;font-size:12px;font-weight:700;outline:none}.billable-check{display:flex;align-items:center;gap:6px;color:#649076;white-space:nowrap;font-weight:800;font-size:12px;cursor:pointer}.billable-check input{accent-color:#618d71;width:15px;height:15px}.chronograph{font-size:26px;font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:-.03em;min-width:111px;text-align:right}.tracker-start{min-width:112px;padding:14px 18px;border-radius:10px}.tracker-start.stop{background:#e46e60;border-color:#e46e60;color:#fff}.tracker-start.stop:hover{background:#c85d50}.timer-running-dot{animation:breathe 2s infinite;background:#70a86c;width:9px;height:9px;border-radius:50%}@keyframes breathe{50%{opacity:.3;transform:scale(.7)}}.entry-toolbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center;margin:24px 0 17px}.date-nav{display:inline-flex;align-items:center;gap:5px}.date-nav strong{font-size:12px;min-width:125px;text-align:center}.date-nav .icon-btn{background:#fffefa;border:1px solid var(--line)}.filter-row{display:flex;align-items:center;gap:9px}.filter-row select,.filter-row input,.report-controls select,.report-controls input{padding:10px 12px;border:1px solid #dce5da;border-radius:10px;background:#fffefa;color:#536657;font-size:12px;max-width:190px;min-width:0}.entry-date{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:21px 2px 11px}.entry-date h3{margin:0;font-size:12px;color:#4f6a56;font-weight:850}.entry-date .total{color:#7d9181;font-size:12px;font-weight:800}.entry-list{overflow:hidden}.entry-row{display:grid;grid-template-columns:minmax(140px,2.1fr) minmax(125px,1fr) 85px 116px 92px;align-items:center;gap:12px;padding:16px 19px;border-bottom:1px solid #edf0ea}.entry-row:last-child{border-bottom:0}.entry-text{min-width:0;display:flex;align-items:center;gap:8px}.entry-title{color:#23362b;font-weight:750;font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entry-tag{font-size:10px;background:#f2f4f0;color:#809586;border-radius:6px;padding:3px 5px}.entry-project{display:flex;align-items:center;gap:7px;color:#718876;font-size:11px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entry-time{color:#829085;font-size:11px;white-space:nowrap;font-variant-numeric:tabular-nums}.entry-duration{font-size:14px;font-weight:870;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}.entry-actions{display:flex;justify-content:flex-end;gap:2px}.entry-actions button{font-size:14px}.entry-row.live{background:#f6fbf1}.record-value{font-size:10px;color:#5a9370;font-weight:700}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.summary-card{padding:21px 22px}.summary-card .small-label{font-size:10px;font-weight:850;color:#839587;letter-spacing:.08em;text-transform:uppercase}.summary-card .big-value{font-size:29px;font-weight:900;margin-top:10px;letter-spacing:-.05em;font-variant-numeric:tabular-nums}.summary-card .sub-value{font-size:10px;color:#8ba091;margin-top:5px}.summary-card.emphasis{background:#eaf3e6;border-color:#d9e9d3}.summary-card.emphasis .big-value{color:#426e4e}
.loading,.empty-state{text-align:center;background:#fffefa;border:1px dashed #d4ded1;border-radius:16px;padding:65px 24px;color:#84978a}.loading h2,.empty-state h2{font-size:19px;letter-spacing:-.03em;color:#314536;margin:12px 0 6px}.loading p,.empty-state p{font-size:12px;max-width:400px;margin:0 auto 18px;line-height:1.7}.empty-state .empty-icon{font-size:34px;color:#7b9d83}.loader{display:block;width:30px;height:30px;border:3px solid #e4eedf;border-top-color:#679579;border-radius:50%;animation:rotate .8s linear infinite;margin:0 auto}@keyframes rotate{to{transform:rotate(360deg)}}.notice{padding:16px 18px;background:#fff2ed;border:1px solid #eccfc1;border-radius:13px;color:#a04e3e;font-size:12px}.notice h3{margin:0 0 5px;font-size:15px}.notice p{margin:0 0 12px}
.report-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:20px}.reports-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:15px;margin-top:18px}.report-card{padding:23px}.card-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:19px}.card-heading h3{font-size:14px;margin:0}.bar-chart{height:220px;display:flex;align-items:end;gap:12px;border-bottom:1px solid #dde7dc;padding:12px 0 0}.bar-column{height:100%;min-width:0;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:7px}.bar-track{width:75%;max-width:43px;flex:1;display:flex;align-items:flex-end}.bar-fill{width:100%;min-height:2px;border-radius:6px 6px 0 0;background:#82b691;position:relative}.bar-fill:hover{background:#5a956e}.bar-fill .bar-pop{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);font-size:9px;font-weight:850;white-space:nowrap;color:#527159}.bar-label{font-size:10px;font-weight:800;color:#7a8f7d}.project-breakdown{display:flex;flex-direction:column;gap:17px}.breakdown-item{display:flex;flex-direction:column;gap:8px}.breakdown-head{display:flex;justify-content:space-between;gap:9px;font-size:11px}.breakdown-head strong{font-weight:750}.breakdown-track{background:#edf1e9;border-radius:30px;height:8px;overflow:hidden}.breakdown-fill{height:100%;border-radius:30px}.report-list{margin-top:20px;padding:17px 23px}.report-list table,.timesheet table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#859888;font-weight:850;padding:12px 10px;border-bottom:1px solid #e4ebe1}td{padding:15px 10px;border-bottom:1px solid #edf1eb}tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.table-scroll{overflow-x:auto}.report-name{display:flex;align-items:center;gap:8px;font-weight:750}
.timesheet{overflow:hidden}.timesheet table{min-width:750px}.timesheet th:first-child,.timesheet td:first-child{min-width:180px}.timesheet td:not(:first-child),.timesheet th:not(:first-child){text-align:center}.timesheet th.today{background:#edf5e9;color:#4c8c5b}.time-cell{border:0;background:transparent;width:100%;text-align:center;padding:9px 2px;border-radius:7px;color:#566f5b;font-size:12px;font-weight:700}.time-cell:hover{background:#e8f2e3;color:#3e6547}.time-cell.nonempty{color:#233d2b}.time-cell.total{font-weight:850;background:#f3f8ee}.sheet-footer{padding:19px;display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid #e4eae2}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.calendar-day{min-height:290px;padding:14px 10px}.calendar-day.today{border-color:#9bbf98;background:#fafff5}.calendar-head{display:flex;flex-direction:column;gap:5px;margin-bottom:17px}.calendar-head span{color:#8da092;font-size:10px;text-transform:uppercase;font-weight:800}.calendar-head b{font-size:20px;letter-spacing:-.04em}.calendar-head small{font-size:10px;color:#8ea291}.calendar-block{display:block;text-align:left;border:0;border-left:3px solid #7baa83;border-radius:7px;background:#edf4ea;padding:9px 7px;margin-bottom:7px;width:100%;font-size:10px;color:#365141;overflow:hidden}.calendar-block b,.calendar-block small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-block b{margin-bottom:5px}.calendar-block small{opacity:.7}.calendar-new{width:100%;padding:11px;border:1px dashed #d6e3d2;color:#89a28e;background:transparent;border-radius:8px}.calendar-new:hover{background:#eff6eb;color:#577b60}.calendar-total{color:#62836a;font-size:11px;font-weight:750;margin-top:10px}
.entity-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:0 0 21px}.entity-list{overflow:hidden}.entity-row{padding:20px 22px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid #eaf0e8}.entity-row:last-child{border-bottom:0}.entity-info{display:flex;align-items:center;gap:13px;min-width:0}.entity-icon{height:39px;width:39px;background:#ebf3e9;border-radius:11px;display:grid;place-items:center;flex:none;font-size:17px;color:#508262}.entity-row h3{font-size:13px;margin:0 0 5px}.entity-row p{font-size:11px;margin:0;color:#899789}.entity-numbers{display:flex;align-items:center;gap:27px}.entity-stat{text-align:right;min-width:67px}.entity-stat b{display:block;font-size:14px}.entity-stat small{display:block;color:#849688;font-size:10px;margin-top:4px}.entity-row button{flex:none}.estimate{height:6px;width:135px;max-width:100%;background:#edf3e9;border-radius:8px;margin-top:10px;overflow:hidden}.estimate i{display:block;height:100%;background:#7cb18a;border-radius:8px}.archived-row{opacity:.62}
.dialog-layer{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px}.dialog-backdrop{position:absolute;inset:0;background:#102419a1;backdrop-filter:blur(4px)}.dialog-panel{position:relative;background:#fffefa;border:1px solid #dce8d9;box-shadow:0 25px 80px #04180a46;border-radius:18px;width:min(100%,510px);max-height:calc(100vh - 40px);overflow:auto}.dialog-heading{display:flex;align-items:center;justify-content:space-between;padding:23px 26px 14px;border-bottom:1px solid #edf1eb}.dialog-heading h2{margin:6px 0 0;font-size:22px;letter-spacing:-.05em}.dialog-heading .icon-btn{align-self:flex-start}#dialog-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:24px 26px 22px}.form-field{display:flex;flex-direction:column;gap:7px;min-width:0}.form-field.full{grid-column:1/-1}.form-field label,.form-field>span{font-size:11px;color:#536c59;font-weight:850}.form-field input,.form-field select,.form-field textarea{border:1px solid #dce7d8;border-radius:9px;padding:11px 12px;min-width:0;width:100%;background:#fbfcf8;outline:none;font-size:13px;color:#2a4130}.form-field textarea{min-height:76px;resize:vertical}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#8aba91;box-shadow:0 0 0 3px #91bb9b22}.form-field .hint{color:#9aab9e;font-size:10px;font-weight:500}.form-field .check-field{display:flex;align-items:center;gap:9px;padding-top:12px;color:#536c59}.form-field .check-field input{width:17px;height:17px;accent-color:#649577}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding:16px 26px 24px;border-top:1px solid #edf1eb}.toast{position:fixed;bottom:27px;right:26px;padding:14px 18px;background:#233c2c;color:#f0fff0;box-shadow:0 12px 40px #09261531;border-radius:12px;font-weight:750;font-size:12px;z-index:150;opacity:0;transform:translateY(15px);pointer-events:none;transition:opacity .2s,transform .2s;max-width:360px}.toast.show{opacity:1;transform:translateY(0)}.toast.error{background:#b95449}.mobile-nav{display:none}.mini-actions{display:flex;align-items:center;gap:4px}.small-note{font-size:11px;color:#8a9a8c;margin-top:9px}
@media(max-width:1280px){:root{--sidebar:225px}.sidebar{padding-left:10px;padding-right:10px}.topbar{padding:27px 25px 22px}.page-content{padding:0 25px 35px}.tracker-card{flex-wrap:wrap}.tracker-desc{flex:1 1 240px}.reports-grid{grid-template-columns:1fr 1fr}.calendar-grid{gap:6px}.calendar-day{padding:9px 6px}.entry-row{grid-template-columns:minmax(120px,2fr) minmax(95px,1fr) 82px 90px 92px;gap:7px;padding:15px 12px}}
@media(max-width:900px){.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.reports-grid{grid-template-columns:1fr}.entry-row{grid-template-columns:minmax(130px,1fr) minmax(105px,1fr) 78px 96px}.entry-actions{grid-column:4}.entry-duration{display:none}.topbar-actions{flex-wrap:wrap;justify-content:flex-end}.entity-numbers{gap:12px}}
@media(max-width:700px){.shell{display:block}.sidebar{display:none}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#17251ef7;z-index:40;padding:9px 5px calc(8px + env(safe-area-inset-bottom));gap:2px;overflow-x:auto;justify-content:space-around;backdrop-filter:blur(12px);box-shadow:0 -8px 25px #152b1d27}.mobile-nav button{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:47px;flex:1;padding:6px 2px;color:#b9cbb7;font-size:9px;font-weight:700;border:0;border-radius:9px;background:transparent}.mobile-nav button strong{font-size:20px;line-height:1.1;font-weight:700}.mobile-nav button.active{background:#314c36;color:#ceffa8}.topbar{padding:22px 17px 17px;align-items:start;gap:13px}.topbar h1{font-size:27px}.topbar-actions{gap:7px}.cloud-status{font-size:9px}.topbar-actions .btn{padding:9px;font-size:10px}.subtitle{font-size:11px}.page-content{padding:0 12px calc(95px + env(safe-area-inset-bottom))}.footer{display:none}.tracker-card{padding:15px;gap:11px}.tracker-desc{flex-basis:100%}.tracker-desc input{font-size:14px}.field-inline{flex:1}.picker-select{min-width:100px;max-width:none;width:100%;font-size:11px}.billable-check{font-size:11px}.chronograph{margin-left:auto;font-size:25px}.tracker-start{min-width:96px;padding:12px}.summary-grid{gap:9px}.summary-card{padding:17px 15px}.summary-card .big-value{font-size:25px}.entry-toolbar{gap:12px;margin-top:20px}.date-nav{width:100%;justify-content:space-between}.filter-row{width:100%}.filter-row select,.filter-row input{flex:1;width:0}.entry-row{grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:14px 12px}.entry-text{grid-column:1}.entry-project{grid-column:1;grid-row:2}.entry-time{grid-column:1;grid-row:3}.entry-duration{grid-column:2;grid-row:1;display:block}.entry-actions{grid-column:2;grid-row:2/4;align-self:end}.entry-actions .icon-btn{width:28px;height:28px}.calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-day{min-height:180px;padding:13px}.entity-row{padding:15px 13px;gap:8px;align-items:start}.entity-numbers{gap:5px;flex-wrap:wrap;justify-content:flex-end}.entity-stat{min-width:55px}.entity-stat b{font-size:12px}.entity-stat small{font-size:9px}.entity-info{gap:8px}.entity-icon{width:32px;height:32px}.estimate{width:90px}.entity-row .icon-btn{width:28px;height:28px}.entity-toolbar{align-items:flex-start}.entity-toolbar .btn{font-size:10px;padding:10px}.report-controls select,.report-controls input{flex:1;max-width:none}.dialog-layer{padding:9px;align-items:end}.dialog-panel{border-radius:18px 18px 0 0;max-height:90vh;width:100%}.dialog-heading{padding:18px 18px 13px}#dialog-fields{padding:20px 18px;gap:12px}.dialog-actions{padding:13px 18px 18px}.toast{right:10px;left:10px;bottom:calc(78px + env(safe-area-inset-bottom));max-width:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
