:root{--bg: #1c2b1e;--bg-raised: #243228;--bg-card: #2c3d2f;--bg-card-hover:#334536;--border: #3d5440;--border-light: #4a6450;--text: #e8e0d0;--text-muted: #9aab9c;--text-dim: #6b7d6d;--gold: #c9a84c;--gold-dim: #9a7e38;--gold-bg: rgba(201, 168, 76, .12);--amber: #e09a3a;--amber-bg: rgba(224, 154, 58, .12);--green: #5aab6e;--green-bg: rgba(90, 171, 110, .12);--rose: #c46a6a;--rose-bg: rgba(196, 106, 106, .1);--radius: 12px;--radius-sm: 8px;--shadow: 0 4px 24px rgba(0,0,0,.4);--shadow-sm: 0 2px 8px rgba(0,0,0,.3);--font-display: "Playfair Display", Georgia, serif;--font-body: "DM Sans", sans-serif;--font-mono: "DM Mono", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{font-size:16px;-webkit-font-smoothing:antialiased}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-weight:400;line-height:1.5;min-height:100vh;overflow-x:hidden}#root{min-height:100vh;display:flex;flex-direction:column}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.header{position:sticky;top:0;z-index:100;background:var(--bg);border-bottom:1px solid var(--border);padding:0 16px}.header-inner{max-width:900px;margin:0 auto;display:flex;align-items:center;gap:12px;height:58px}.header-title{font-family:var(--font-display);font-size:1.25rem;font-weight:600;color:var(--text);letter-spacing:.01em;flex:1}.header-title span{color:var(--gold)}.search-bar-desktop{display:none;align-items:center;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;gap:8px;width:260px;height:38px;transition:border-color .15s}.search-bar-desktop:focus-within{border-color:var(--gold-dim)}.search-bar-desktop input{background:none;border:none;outline:none;color:var(--text);font-family:var(--font-body);font-size:.875rem;width:100%}.search-bar-desktop input::placeholder{color:var(--text-dim)}.search-btn-mobile{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:8px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s}.search-btn-mobile:hover,.search-btn-mobile.active{color:var(--gold);background:var(--gold-bg)}.add-btn{background:var(--gold-bg);border:1px solid var(--gold-dim);color:var(--gold);cursor:pointer;padding:6px 14px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.8rem;font-weight:500;letter-spacing:.03em;white-space:nowrap;transition:background .15s,border-color .15s}.add-btn:hover{background:#c9a84c33;border-color:var(--gold)}.filter-bar{background:var(--bg);border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.filter-bar::-webkit-scrollbar{display:none}.filter-bar-inner{max-width:900px;margin:0 auto;display:flex;padding:0 12px;gap:2px}.filter-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:10px 14px;font-family:var(--font-body);font-size:.8rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;margin-bottom:-1px}.filter-btn:hover{color:var(--text)}.filter-btn.active{color:var(--gold);border-bottom-color:var(--gold)}.main{flex:1;max-width:900px;margin:0 auto;width:100%;padding:16px}.search-indicator{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:.8rem;color:var(--text-muted)}.search-indicator-clear{background:none;border:none;color:var(--rose);cursor:pointer;font-size:.8rem;padding:2px 6px;border-radius:4px;font-family:var(--font-body);transition:background .15s}.search-indicator-clear:hover{background:var(--rose-bg)}.state-center{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px;gap:12px;color:var(--text-dim);text-align:center}.state-center .state-icon{font-size:2.5rem;opacity:.5}.state-center .state-title{font-family:var(--font-display);font-size:1.1rem;color:var(--text-muted)}.state-center .state-sub{font-size:.85rem;color:var(--text-dim);max-width:260px}.spinner{width:28px;height:28px;border:2px solid var(--border);border-top-color:var(--gold);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.obit-list,.obit-cards{display:flex;flex-direction:column;gap:8px}.obit-date-group{margin-bottom:4px}.obit-date-header{font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);padding:12px 4px 6px;font-family:var(--font-mono)}.obit-date-header.today{color:var(--gold)}.obit-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;transition:background .15s,border-color .15s;animation:slideIn .2s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.obit-card:hover{background:var(--bg-card-hover)}.obit-card.has-orders{border-color:var(--amber);background:linear-gradient(135deg,var(--bg-card),rgba(224,154,58,.05))}.obit-card.delivered{opacity:.5;border-color:var(--border)}.obit-card.is-private{border-left:3px solid var(--gold-dim)}.obit-delete-btn{flex-shrink:0;background:none;border:none;cursor:pointer;padding:4px;margin-top:2px;color:var(--text-dim);opacity:.4;transition:opacity .15s,color .15s}.obit-delete-btn:hover{opacity:1;color:#c0392b}.obit-top{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px}.obit-checkbox{margin-top:2px;width:22px;height:22px;border-radius:6px;border:2px solid var(--border-light);background:var(--bg-raised);cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s}.obit-checkbox:hover{border-color:var(--amber)}.obit-checkbox.checked{border-color:var(--amber);background:var(--amber-bg);color:var(--amber)}.obit-info{flex:1;min-width:0}.obit-name{font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.obit-home{font-size:.75rem;color:var(--text-dim);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.obit-home.is-private{color:var(--gold-dim)}.deliver-by{flex-shrink:0;text-align:right}.deliver-by-label{font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);font-family:var(--font-mono)}.deliver-by-time{font-family:var(--font-mono);font-size:1.05rem;font-weight:500;color:var(--gold);line-height:1.2}.deliver-by-time.urgent{color:var(--rose)}.obit-details{display:flex;flex-wrap:wrap;gap:6px 16px;margin-bottom:12px}.obit-detail{display:flex;align-items:center;gap:5px;font-size:.78rem;color:var(--text-muted)}.obit-detail-icon{font-size:.7rem;opacity:.7}.obit-detail-type{font-size:.65rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-family:var(--font-mono);color:var(--text-dim);background:var(--bg-raised);padding:1px 5px;border-radius:3px}.delivery-controls{display:flex;align-items:center;gap:10px;padding-top:10px;border-top:1px solid var(--border)}.order-counter{display:flex;align-items:center;background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;overflow:hidden}.counter-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;width:34px;height:34px;font-size:1.1rem;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s;font-family:var(--font-mono)}.counter-btn:hover:not(:disabled){color:var(--text);background:var(--bg-card-hover)}.counter-btn:disabled{opacity:.3;cursor:not-allowed}.counter-value{font-family:var(--font-mono);font-size:.95rem;font-weight:500;color:var(--amber);min-width:28px;text-align:center}.delivered-btn{background:none;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;padding:6px 14px;border-radius:8px;font-family:var(--font-body);font-size:.78rem;font-weight:500;letter-spacing:.03em;transition:all .15s;white-space:nowrap}.delivered-btn:hover,.delivered-btn.is-delivered{border-color:var(--green);color:var(--green);background:var(--green-bg)}.obit-url{margin-left:auto;font-size:.72rem;color:var(--text-dim);text-decoration:none;padding:4px 8px;border-radius:4px;transition:color .15s,background .15s}.obit-url:hover{color:var(--gold);background:var(--gold-bg)}.search-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:var(--bg);display:flex;flex-direction:column;transform:translateY(100%);transition:transform .25s cubic-bezier(.32,.72,0,1)}.search-overlay.open{transform:translateY(0)}.search-overlay-header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border)}.search-overlay-input-wrap{flex:1;display:flex;align-items:center;gap:10px;background:var(--bg-raised);border:1px solid var(--gold-dim);border-radius:var(--radius-sm);padding:0 14px;height:44px}.search-overlay-input-wrap svg{color:var(--gold-dim);flex-shrink:0}.search-overlay-input{flex:1;background:none;border:none;outline:none;color:var(--text);font-family:var(--font-body);font-size:1rem}.search-overlay-input::placeholder{color:var(--text-dim)}.search-overlay-cancel{background:none;border:none;color:var(--text-muted);cursor:pointer;font-family:var(--font-body);font-size:.9rem;padding:8px;white-space:nowrap}.search-overlay-results{flex:1;overflow-y:auto;padding:12px 16px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0009;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .15s ease}@media (min-width: 600px){.modal-backdrop{align-items:center}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;padding:24px 20px 32px;width:100%;max-width:480px;animation:slideUp .25s cubic-bezier(.32,.72,0,1)}@media (min-width: 600px){.modal{border-radius:var(--radius)}}@keyframes slideUp{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600;margin-bottom:20px;color:var(--text)}.form-group{margin-bottom:16px}.form-label{display:block;font-size:.72rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;font-family:var(--font-mono)}.form-input{width:100%;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-body);font-size:.95rem;padding:10px 14px;outline:none;transition:border-color .15s;-webkit-appearance:none}.form-input:focus{border-color:var(--gold-dim)}.form-input::placeholder{color:var(--text-dim)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-select{width:100%;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-body);font-size:.95rem;padding:10px 32px 10px 14px;outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236b7d6d' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.form-select:focus{border-color:var(--gold-dim)}.modal-actions{display:flex;gap:10px;margin-top:24px}.btn-primary{flex:1;background:var(--gold-bg);border:1px solid var(--gold-dim);color:var(--gold);cursor:pointer;padding:12px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.9rem;font-weight:600;transition:background .15s}.btn-primary:hover{background:#c9a84c38}.btn-primary:disabled{opacity:.35;cursor:not-allowed}.btn-cancel{background:none;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;padding:12px 20px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.9rem;transition:border-color .15s}.btn-cancel:hover{border-color:var(--border-light);color:var(--text)}@media (min-width: 640px){.search-bar-desktop{display:flex}.search-btn-mobile,.search-overlay{display:none}}@media (max-width: 400px){.obit-name,.deliver-by-time{font-size:.95rem}}.deliver-by-btn{flex-shrink:0;text-align:right;background:none;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;padding:4px 6px;transition:border-color .15s,background .15s;line-height:1}.deliver-by-btn:hover{border-color:var(--border);background:var(--bg-raised)}.deliver-by-edited{display:block;font-size:.58rem;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--amber);margin-bottom:1px}.deliver-by-time--edited{color:var(--amber)!important}.note-btn{background:none;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;padding:6px 12px;border-radius:8px;font-family:var(--font-body);font-size:.78rem;font-weight:500;letter-spacing:.03em;display:flex;align-items:center;gap:5px;transition:all .15s;white-space:nowrap}.note-btn:hover,.note-btn--active{border-color:var(--gold-dim);color:var(--gold);background:var(--gold-bg)}.note-pulse-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);flex-shrink:0;animation:notePulse 2s ease-in-out infinite}@keyframes notePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.6)}}.popup-sub-name{font-size:.78rem;color:var(--text-dim);font-family:var(--font-mono);margin-bottom:16px;margin-top:-12px}.popup-original-time{font-size:.75rem;color:var(--text-dim);margin-top:-4px;margin-bottom:4px}.popup-original-time-value{font-family:var(--font-mono);color:var(--text-muted)}.note-textarea{height:100px;resize:none}.btn-danger-text{color:var(--rose)!important;border-color:var(--rose)!important}.btn-danger-text:hover{background:var(--rose-bg)!important}.tc-page{flex:1;max-width:560px;margin:0 auto;width:100%;padding:16px;display:flex;flex-direction:column;gap:10px}.tc-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--border);margin-bottom:4px}.tc-title{font-family:var(--font-display);font-size:1.3rem;font-weight:600;color:var(--text)}.tc-lock-btn{background:none;border:1px solid var(--border);color:var(--text-dim);cursor:pointer;padding:5px 12px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.78rem;transition:border-color .15s,color .15s}.tc-lock-btn:hover{border-color:var(--border-light);color:var(--text-muted)}.tc-status-row{display:flex;align-items:center;gap:8px;margin-bottom:14px}.tc-status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-dim);flex-shrink:0}.tc-status-dot--active{background:var(--green);animation:tcPulse 2s ease-in-out infinite}@keyframes tcPulse{0%,to{opacity:1}50%{opacity:.4}}.tc-status-text{font-size:.85rem;color:var(--text-muted)}.tc-big-hours{font-family:var(--font-mono);font-size:2.6rem;font-weight:500;color:var(--gold);line-height:1}.tc-big-sub{font-size:.72rem;color:var(--text-dim);margin-top:4px;font-family:var(--font-mono)}.tc-divider{border:none;border-top:1px solid var(--border);margin:14px 0}.tc-pin-row{display:flex;align-items:center;gap:8px}.tc-pin-input{width:120px!important;letter-spacing:.25em;text-align:center;font-family:var(--font-mono)!important}.tc-elapsed{font-family:var(--font-mono);font-size:1rem;color:var(--green);margin-bottom:4px}.tc-clock-btn{border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-body);font-size:.95rem;font-weight:500;padding:12px 32px;letter-spacing:.03em;transition:all .15s}.tc-clock-btn--in{background:var(--green-bg);border:1px solid var(--green);color:var(--green)}.tc-clock-btn--in:hover{background:#5aab6e33}.tc-clock-btn--out{background:var(--rose-bg);border:1px solid var(--rose);color:var(--rose)}.tc-clock-btn--out:hover{background:#c46a6a2e}.tc-section-head{font-size:.65rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);font-family:var(--font-mono);margin-bottom:10px}.tc-entry-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--border);font-size:.82rem}.tc-entry-date{color:var(--text-muted);min-width:82px;font-size:.78rem}.tc-entry-times{color:var(--text);flex:1;font-family:var(--font-mono);font-size:.78rem}.tc-entry-dur{color:var(--gold);font-family:var(--font-mono);font-size:.78rem;min-width:42px;text-align:right}.tc-entry-dur--active{color:var(--green)}.tc-entry-edit-btn{background:none;border:1px solid var(--border);color:var(--text-dim);cursor:pointer;font-size:.7rem;padding:2px 8px;border-radius:4px;font-family:var(--font-body);transition:border-color .15s,color .15s}.tc-entry-edit-btn:hover{border-color:var(--gold-dim);color:var(--gold)}.tc-add-entry-btn{background:none;border:1px dashed var(--border);color:var(--text-dim);cursor:pointer;width:100%;padding:8px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.8rem;margin-top:10px;transition:border-color .15s,color .15s}.tc-add-entry-btn:hover{border-color:var(--gold-dim);color:var(--gold)}.tc-rate-row{display:flex;align-items:center;gap:8px}.tc-rate-input{width:100px!important;font-family:var(--font-mono)!important}.tc-totals-row{display:flex;justify-content:space-between;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--border)}.tc-totals-label{font-size:.8rem;color:var(--text-muted)}.tc-totals-val{font-family:var(--font-mono);font-size:.9rem;color:var(--text)}.tc-totals-val--gold{color:var(--gold);font-size:1.05rem;font-weight:500}.tc-history-row{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-bottom:1px solid var(--border)}.tc-history-row:last-child{border-bottom:none}.tc-history-paid-on{font-size:.7rem;color:var(--text-dim);font-family:var(--font-mono)}.tc-history-detail{font-size:.82rem;color:var(--text-muted)}.tc-history-total{font-size:.9rem;color:var(--gold);font-family:var(--font-mono);font-weight:500}.tc-muted{font-size:.82rem;color:var(--text-dim)}.tc-form-error{font-size:.78rem;color:var(--rose);margin-top:-8px;margin-bottom:8px}.tc-form-success{font-size:.78rem;color:var(--green);margin-top:-8px;margin-bottom:8px}.tc-text-btn{background:none;border:none;color:var(--text-dim);cursor:pointer;font-family:var(--font-body);font-size:.82rem;padding:0;text-decoration:underline;text-underline-offset:3px;transition:color .15s}.tc-text-btn:hover{color:var(--gold)}
