:root{--parchment: #FAF7F2;--ink: #1A1A1A;--green: #1B5E3B;--slate: #4A5568;--subtle: #F0EDE7;--green-light: #E8F0EB;--border: #E4E0D8}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%;background:var(--parchment);color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,textarea{font-family:inherit;color:inherit}.app-shell{max-width:480px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;position:relative;background:var(--parchment);padding-bottom:calc(96px + env(safe-area-inset-bottom))}.header{padding:calc(24px + env(safe-area-inset-top)) 20px 16px;border-bottom:1px solid var(--border);background:var(--parchment);position:sticky;top:0;z-index:10}.header-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.header h1{margin:0;font-size:22px;font-weight:400;letter-spacing:.01em;color:var(--ink)}.header .subtitle{margin:2px 0 0;font-size:13px;font-style:italic;color:var(--slate)}.hours-pill{flex-shrink:0;background:var(--green);color:#fff;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:500;white-space:nowrap}.tabs{display:flex;border-bottom:1px solid var(--border);background:var(--parchment);position:sticky;top:0;z-index:5}.tab{flex:1;background:transparent;border:0;border-bottom:2px solid transparent;padding:14px 0;font-size:15px;color:var(--slate);cursor:pointer;transition:color .12s,border-color .12s}.tab.active{color:var(--green);border-bottom-color:var(--green)}.tab-panel{padding:16px 20px}.section-label{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);margin:18px 0 8px}.section-label:first-child{margin-top:4px}.item{background:#fff;border:1px solid var(--border);border-radius:6px;margin-bottom:8px;overflow:hidden}.item-head{display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer;-webkit-user-select:none;user-select:none}.item.checked .item-head{background:var(--green-light)}.checkbox{width:20px;height:20px;border:1.5px solid var(--slate);border-radius:4px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:#fff;transition:background .12s,border-color .12s}.item.checked .checkbox{background:var(--green);border-color:var(--green);color:#fff}.checkbox svg{width:14px;height:14px}.item-label{flex:1;font-size:15px;color:var(--ink)}.item-meta{font-size:12px;color:var(--slate);font-style:italic}.item-body{padding:4px 14px 14px 46px;display:flex;flex-direction:column;gap:8px;background:#fff;border-top:1px solid var(--border)}.item.checked .item-body{background:var(--green-light)}.field-row{display:flex;gap:8px;align-items:center}.field-row label{font-size:12px;color:var(--slate);min-width:72px}.input,.textarea{flex:1;background:var(--parchment);border:1px solid var(--border);border-radius:4px;padding:8px 10px;font-size:14px;color:var(--ink);outline:none;transition:border-color .12s}.input:focus,.textarea:focus{border-color:var(--green)}.textarea{resize:vertical;min-height:60px;font-family:Georgia,serif}.day-notes{margin-top:16px;background:#fff;border:1px solid var(--border);border-radius:6px;padding:12px 14px}.day-notes label{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);display:block;margin-bottom:6px}.fab{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom));left:50%;transform:translate(calc(-50% + 200px));width:56px;height:56px;border-radius:50%;background:var(--green);color:#fff;border:0;box-shadow:0 4px 12px #1b5e3b59;font-size:28px;line-height:1;cursor:pointer;z-index:20}@media (max-width: 520px){.fab{transform:translate(0);left:auto;right:20px}}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a1a1a59;z-index:30;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:480px;background:var(--parchment);border-radius:14px 14px 0 0;padding:16px 18px calc(24px + env(safe-area-inset-bottom));max-height:80dvh;overflow-y:auto}.sheet h2{margin:0 0 12px;font-size:16px;font-weight:500}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.quick-btn{background:#fff;border:1px solid var(--border);border-radius:8px;padding:14px 6px;font-size:12px;color:var(--ink);display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;line-height:1.2}.quick-btn:active{background:var(--subtle)}.quick-btn .emoji{font-size:22px}.btn-primary{background:var(--green);color:#fff;border:0;border-radius:6px;padding:10px 16px;font-size:14px;cursor:pointer}.btn-ghost{background:transparent;color:var(--slate);border:1px solid var(--border);border-radius:6px;padding:10px 16px;font-size:14px;cursor:pointer}.btn-danger{background:transparent;color:#9b2c2c;border:1px solid #E4B8B8;border-radius:6px;padding:10px 16px;font-size:14px;cursor:pointer}.row-actions{display:flex;gap:8px;margin-top:4px}.history-day{background:#fff;border:1px solid var(--border);border-radius:6px;padding:14px;margin-bottom:12px}.history-day header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.history-day .date{font-size:15px;color:var(--ink);font-weight:500}.history-day .day-total{font-size:12px;color:var(--green);font-weight:500}.history-day ul{list-style:none;padding:0;margin:6px 0 0;font-size:13px;color:var(--ink)}.history-day li{padding:4px 0;border-bottom:1px dotted var(--border);display:flex;justify-content:space-between;gap:12px}.history-day li:last-child{border-bottom:0}.history-day li .meta{color:var(--slate);font-size:12px;font-style:italic}.history-day .notes{margin-top:8px;padding-top:8px;border-top:1px solid var(--border);font-size:13px;color:var(--slate);font-style:italic;white-space:pre-wrap}.stat-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.stat-card{background:#fff;border:1px solid var(--border);border-radius:6px;padding:14px}.stat-card .value{font-size:28px;color:var(--green);font-weight:400}.stat-card .label{font-size:11px;color:var(--slate);letter-spacing:.08em;text-transform:uppercase}.bar-row{display:grid;grid-template-columns:130px 1fr 56px;align-items:center;gap:10px;margin-bottom:6px;font-size:13px}.bar-row .cat{color:var(--ink)}.bar-row .bar-track{background:var(--subtle);border-radius:3px;height:10px;overflow:hidden}.bar-row .bar-fill{display:block;background:var(--green);height:100%}.bar-row .count{color:var(--slate);text-align:right;font-size:12px}.summary-card{margin-top:18px;background:#fff;border:1px solid var(--border);border-radius:6px;padding:14px;font-size:13px;line-height:1.6;color:var(--ink);white-space:pre-wrap}.summary-card .copy-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.summary-card .label{font-size:11px;color:var(--slate);letter-spacing:.12em;text-transform:uppercase}.empty{color:var(--slate);font-style:italic;font-size:14px;padding:20px;text-align:center}.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.header-btn{background:transparent;color:var(--green);border:1px solid var(--green);padding:6px 10px;border-radius:999px;font-size:13px;font-weight:500;cursor:pointer;transition:background .12s,color .12s}.header-btn:hover,.header-btn:active{background:var(--green);color:#fff}.backdate-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--parchment);z-index:100;overflow-y:auto;padding-bottom:calc(80px + env(safe-area-inset-bottom))}.backdate-header{position:sticky;top:0;z-index:10;background:var(--parchment);border-bottom:1px solid var(--border);padding:calc(16px + env(safe-area-inset-top)) 16px 12px;display:flex;align-items:center;gap:12px}.backdate-header .btn-ghost{flex-shrink:0}.backdate-title{flex:1;min-width:0}.backdate-title .subtitle{font-size:11px;color:var(--slate);text-transform:uppercase;letter-spacing:.1em;margin:0 0 2px}.backdate-title .date-strong{font-size:15px;font-weight:500;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.date-picker{border:1px solid var(--border);background:#fff;border-radius:8px;padding:6px 8px;font-size:13px;color:var(--ink);flex-shrink:0;min-width:0;max-width:140px}.range-row{display:flex;gap:10px;margin-bottom:10px}.range-input{flex:1;min-width:0}.range-input label{display:block;font-size:11px;color:var(--slate);text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px}.preset-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.btn-primary{background:var(--green);color:#fff;border:0;padding:6px 14px;border-radius:999px;font-size:13px;font-weight:500;cursor:pointer;margin-left:auto}.report-table{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:14px}.report-table th,.report-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border)}.report-table th{font-weight:500;color:var(--slate);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.report-table td.meta,.report-table th.meta{color:var(--slate)}.report-table .num{text-align:right;font-variant-numeric:tabular-nums}.export-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.sqlite-note{margin-top:16px;padding:12px;border:1px dashed var(--border);border-radius:8px;font-size:12px;color:var(--slate);line-height:1.5}.sqlite-note code{background:#0000000a;padding:1px 4px;border-radius:4px;font-size:11px;word-break:break-all}.daystatus{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;padding:9px 12px;margin-bottom:14px;background:var(--card, #fff);border:1px solid var(--border, #E4E0D8);border-radius:8px;cursor:pointer}.daystatus:active{transform:scale(.995)}.daystatus-main{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--ink, #1A1A1A)}.daystatus-dot{width:8px;height:8px;border-radius:50%;background:var(--green, #1B5E3B);flex:none}.daystatus.off .daystatus-dot,.daystatus.vacation .daystatus-dot{background:#c9a227}.daystatus.sick .daystatus-dot{background:#b45309}.daystatus.travel .daystatus-dot{background:#6366f1}.daystatus-why{font-size:11.5px;color:var(--slate, #4A5568);text-align:right;flex:1 1 auto}.sheet-note{font-size:12.5px;line-height:1.5;color:var(--slate, #4A5568);margin:-4px 0 14px}.typelist{display:flex;flex-direction:column;gap:7px}.typerow{width:100%;text-align:left;padding:12px 14px;font-size:15px;background:var(--card, #fff);border:1px solid var(--border, #E4E0D8);border-radius:8px;cursor:pointer;color:var(--ink, #1A1A1A)}.typerow.active{background:var(--green, #1B5E3B);border-color:var(--green, #1B5E3B);color:#fff;font-weight:600}.typerow.clear{color:var(--slate, #4A5568);font-size:13.5px;margin-top:4px}.hint{font-size:12.5px;line-height:1.5;color:var(--slate, #4A5568);margin:-2px 0 12px}.empty.small{padding:12px 0;font-size:13px}.away-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:10px 12px;margin-bottom:8px;background:var(--card, #fff);border:1px solid var(--border, #E4E0D8);border-radius:8px}.away-main{display:flex;flex-direction:column;gap:3px;min-width:0}.away-tag{align-self:flex-start;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:999px;background:#efe9db;color:#7a5c1e}.away-tag.sick{background:#fef0e4;color:#b45309}.away-tag.travel{background:#ededfb;color:#4f46e5}.away-dates{font-size:13.5px;font-weight:600;color:var(--ink, #1A1A1A)}.away-meta{font-size:12px;color:var(--slate, #4A5568)}.away-form{padding:12px;margin-bottom:10px;background:var(--card, #fff);border:1px solid var(--border, #E4E0D8);border-radius:8px;display:flex;flex-direction:column;gap:10px}.typerow-inline{display:flex;gap:6px;flex-wrap:wrap}.daytype{flex:1 1 auto;min-width:70px;padding:8px 10px;font-size:13px;font-weight:500;color:var(--slate, #4A5568);background:var(--card, #fff);border:1px solid var(--border, #E4E0D8);border-radius:8px;cursor:pointer}.daytype.active{background:var(--green, #1B5E3B);border-color:var(--green, #1B5E3B);color:#fff;font-weight:600}.form-actions{display:flex;justify-content:flex-end;gap:8px}.form-err{font-size:12.5px;color:#b42318}.add-away{align-self:flex-start;margin-bottom:14px}.callout{font-size:13px;line-height:1.45;background:#faf7f0;border-left:3px solid #c9a227;border-radius:4px;padding:9px 11px;margin:12px 0 4px}.daytype-badge{display:inline-block;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:999px;background:#efe9db;color:#7a5c1e;margin-left:7px;vertical-align:middle}.login-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 18px;background:var(--parchment, #FAF7F2)}.login-card{width:100%;max-width:360px;display:flex;flex-direction:column;gap:6px;padding:26px 22px 22px;background:#fff;border:1px solid var(--border, #E4E0D8);border-radius:12px}.login-card h1{font-size:20px;margin:0;color:var(--ink, #1A1A1A)}.login-sub{font-size:13px;font-style:italic;color:var(--slate, #4A5568);margin:0 0 14px}.login-card label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--slate, #4A5568);margin-top:8px}.login-btn{width:100%;margin-top:18px;padding:13px;font-size:15px}.login-note{font-size:11.5px;color:var(--slate, #4A5568);text-align:center;margin:12px 0 0}
