@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap');

:root{--blue:#163f7a;--blue-dark:#0c2d59;--gold:#c6a75e;--cream:#faf2eb;--paper:#fffdf9;--ink:#18202b;--muted:#6b7280;--line:#e7ded4;--ok:#2f7d5b;--shadow:0 12px 32px rgba(18,45,78,.08)}
*{box-sizing:border-box}
html{background:var(--cream);color:var(--ink);font-family:Inter,system-ui,sans-serif}
body{margin:0;min-height:100vh;padding-bottom:92px;background:linear-gradient(180deg,#f7ede4 0,#fffdf9 34rem)}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px;padding:calc(10px + env(safe-area-inset-top)) 18px 10px;background:rgba(250,242,235,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(22,63,122,.1)}
.brand-mark{display:grid;place-items:center;width:39px;height:39px;border-radius:11px;background:var(--blue);color:white;font-family:"Playfair Display",serif;font-size:24px;box-shadow:inset 0 -2px 0 rgba(0,0,0,.15)}
.app-header>div:nth-child(2){flex:1}
.eyebrow{margin:0;color:var(--blue);font-size:.72rem;font-weight:700;letter-spacing:.14em}
.eyebrow.gold{color:#947634}
.today-label{margin:3px 0 0;color:var(--muted);font-size:.78rem;text-transform:capitalize}
.install-btn,.text-btn,.card-link{border:0;background:none;color:var(--blue);font-weight:700}
.install-btn{padding:8px 10px;border:1px solid var(--blue);border-radius:9px;font-size:.76rem}
main{max-width:760px;margin:auto;padding:23px 17px 10px}
.view{display:none;animation:appear .2s ease}.view.active{display:block}
@keyframes appear{from{opacity:.3;transform:translateY(4px)}}
h1,h2{font-family:"Playfair Display",Georgia,serif;color:var(--blue-dark)}
h1{margin:5px 0 20px;font-size:clamp(1.9rem,8vw,2.65rem);line-height:1.05;letter-spacing:-.025em}
h2{margin:0;font-size:1.2rem}
.welcome-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.service-state{flex:none;padding:8px 10px;border:1px solid var(--line);border-radius:99px;background:white;color:var(--muted);font-size:.75rem;font-weight:700;cursor:pointer}.service-state::after{content:' ›';margin-left:4px}.service-state:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.priority-card{position:relative;margin:4px 0 27px;padding:18px;border-radius:18px;background:var(--blue);box-shadow:0 14px 30px rgba(22,63,122,.18);overflow:hidden}
.priority-card:after{content:"";position:absolute;width:90px;height:90px;right:-42px;top:-45px;transform:rotate(45deg);border:1px solid rgba(198,167,94,.6)}
.priority-card label{display:block;margin-bottom:8px;color:#efdba9;font-family:"Playfair Display",serif;font-weight:700;font-size:1.05rem}
textarea,input,select{width:100%;border:1px solid var(--line);border-radius:11px;background:white;color:var(--ink);outline:none}
textarea:focus,input:focus,select:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(198,167,94,.16)}
textarea{padding:12px;resize:vertical;line-height:1.45}
input,select{min-height:45px;padding:10px 12px}
.priority-card textarea{position:relative;z-index:1;padding:0;border:0;border-radius:0;background:transparent;color:white;font-size:1.04rem;box-shadow:none}
.priority-card textarea::placeholder{color:rgba(255,255,255,.55)}
.section-title-row{display:flex;align-items:center;justify-content:space-between;margin:0 0 11px}.section-title-row.compact{margin:0 0 13px}
.text-btn{padding:7px 0;font-size:.85rem}
.task-list,.check-list,.staff-list,.journal-list{display:grid;gap:9px}
.task-item,.check-item,.staff-item{display:flex;align-items:center;gap:10px;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:var(--paper)}
.task-item input,.check-item input{appearance:none;width:21px;height:21px;min-height:0;padding:0;border:1.5px solid #9aa4b1;border-radius:6px}
.task-item input:checked,.check-item input:checked{border-color:var(--blue);background:var(--blue);box-shadow:inset 0 0 0 4px var(--paper)}
.task-item>span,.check-item>span{flex:1;font-size:.93rem}.task-item.done .task-copy strong,.task-item.done>span,.check-item.done span{text-decoration:line-through;color:#9299a3}
.task-copy{display:block;min-width:0;flex:1}.task-copy strong{display:block;color:var(--ink);font-size:.93rem;font-weight:600}.task-copy small{display:block;margin-top:3px;color:var(--muted);font-size:.78rem;line-height:1.35}
.task-item.overdue{border-color:#d9a4a4;background:#fff7f6}.task-copy small.task-overdue{color:#b42318;font-weight:800}
.delete{border:0;background:none;color:#a0a5ad;font-size:1.15rem;padding:3px 5px}
.item-actions{display:flex;align-items:center;gap:3px;flex:none}.edit-item{min-height:32px;padding:5px 8px;border:1px solid #c9d3df;border-radius:8px;background:#f7f9fb;color:var(--blue);font-size:.7rem;font-weight:700}
.schedule-card{margin:13px 0 24px;border:1px solid var(--line);border-radius:15px;background:rgba(255,253,249,.8);overflow:hidden}.schedule-card summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;cursor:pointer;list-style:none}.schedule-card summary::-webkit-details-marker{display:none}.schedule-card summary strong{display:block;margin-top:3px;color:var(--blue-dark);font-family:"Playfair Display",serif}.schedule-count{display:grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border-radius:99px;background:#f1e9d9;color:#745a22;font-size:.78rem;font-weight:700}.scheduled-list{display:grid;gap:0;padding:0 14px 14px}.scheduled-item{display:flex;align-items:center;gap:10px;padding:11px 0;border-top:1px solid var(--line)}
.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:24px 0}
.mini-card,.week-card,.form-card,.report-card{border:1px solid var(--line);background:rgba(255,253,249,.94);box-shadow:var(--shadow)}
.mini-card{padding:15px;border-radius:15px}.mini-label{display:block;color:var(--muted);font-size:.68rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.mini-card strong{display:block;margin:7px 0 1px;color:var(--blue);font-family:"Playfair Display",serif;font-size:1.55rem}.mini-card p{margin:0 0 11px;color:var(--muted);font-size:.72rem;line-height:1.35}.card-link{padding:0;font-size:.75rem}.progress{height:5px;margin:5px 0 14px;border-radius:10px;background:#e7e9ed;overflow:hidden}.progress span{display:block;width:0;height:100%;background:var(--gold);transition:width .2s}
.week-card,.form-card,.report-card{margin:18px 0;padding:17px;border-radius:17px}.week-list{display:grid;gap:4px}.week-item{display:flex;gap:10px;padding:9px 0;border-top:1px solid var(--line);font-size:.85rem}.week-item strong{width:76px;color:var(--blue)}
.phase-switch{display:grid;grid-template-columns:repeat(3,1fr);margin:0 0 18px;padding:4px;border-radius:13px;background:#e9e2dc}.phase-switch button{padding:10px 5px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-size:.75rem;font-weight:700}.phase-switch button.active{background:white;color:var(--blue);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.phase-panel{animation:phaseIn .18s ease}.phase-panel[hidden]{display:none}@keyframes phaseIn{from{opacity:.35;transform:translateY(5px)}}.phase-lead-card{margin-top:0}.phase-lead-card .section-title-row{margin-bottom:0}.phase-report-link{margin-top:18px}.closing-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.closing-summary div{padding:11px 8px;border:1px solid var(--line);border-radius:10px;background:#f9f6f1}.closing-summary span{display:block;color:var(--muted);font-size:.65rem;font-weight:700;text-transform:uppercase}.closing-summary strong{display:block;margin-top:4px;color:var(--blue);font-family:"Playfair Display",serif;font-size:1rem}
.form-card{display:grid;gap:15px}.form-card h2{margin-bottom:1px}.form-card label,.field-grid label{display:grid;gap:7px;color:var(--blue-dark);font-size:.78rem;font-weight:700}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.intro{margin:-11px 0 22px;color:var(--muted);font-size:.94rem;line-height:1.5}.staff-item{align-items:flex-start}.avatar{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:50%;background:#e8dfd6;color:var(--blue);font-family:"Playfair Display",serif;font-weight:700}.staff-copy{flex:1}.staff-copy strong{display:block;color:var(--blue-dark)}.staff-copy span{display:block;margin-top:3px;color:var(--muted);font-size:.78rem}
.primary,.secondary,.danger{min-height:46px;padding:11px 17px;border-radius:11px;font-weight:700}.primary{border:1px solid var(--blue);background:var(--blue);color:white}.secondary{border:1px solid var(--line);background:white;color:var(--blue)}.danger{border:1px solid #9f3030;background:#9f3030;color:white}.full{width:100%;margin-bottom:18px}
.journal-list{gap:12px}.journal-item{padding:16px;border-left:4px solid var(--gold);border-radius:4px 14px 14px 4px;background:white;box-shadow:var(--shadow)}.journal-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:.72rem}.journal-item h3{margin:8px 0 5px;color:var(--blue-dark);font-family:"Playfair Display",serif}.journal-item p{margin:0;color:#4c5562;font-size:.88rem;line-height:1.45}.followup{display:inline-block;margin-top:10px;padding:5px 8px;border-radius:6px;background:#f1e9d9;color:#745a22;font-size:.7rem;font-weight:700}
.voice-card{margin:0 0 20px;padding:17px;border:1px solid var(--line);border-radius:17px;background:rgba(255,253,249,.94);box-shadow:var(--shadow)}.voice-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.voice-card-head h2{margin-top:4px}.voice-local{padding:6px 8px;border-radius:99px;background:#f1e9d9;color:#745a22;font-size:.65rem;font-weight:700}.voice-intro{margin:11px 0 14px;color:var(--muted);font-size:.84rem;line-height:1.45}.voice-controls{display:flex;align-items:center;gap:12px}.voice-record{display:flex;align-items:center;justify-content:center;gap:9px;min-height:46px;flex:1;padding:10px 14px;border:1px solid var(--blue);border-radius:11px;background:var(--blue);color:white;font-weight:700}.record-dot{width:11px;height:11px;border-radius:50%;background:#ef7777;box-shadow:0 0 0 3px rgba(255,255,255,.16)}.voice-record.recording{border-color:#9f3030;background:#9f3030}.voice-record.recording .record-dot{background:white;animation:recordPulse 1s infinite}.recording-timer{min-width:48px;color:var(--blue-dark);font-variant-numeric:tabular-nums;text-align:right}@keyframes recordPulse{50%{opacity:.35}}.voice-status{min-height:18px;margin:9px 0 13px;color:var(--muted);font-size:.72rem;line-height:1.4}.voice-list{display:grid;gap:9px}.voice-item{padding:12px;border:1px solid var(--line);border-radius:12px;background:white}.voice-item-head{display:flex;align-items:center;gap:8px;margin-bottom:9px}.voice-item-head div{flex:1}.voice-item-head strong{display:block;color:var(--blue-dark);font-size:.82rem}.voice-item-head span{display:block;margin-top:2px;color:var(--muted);font-size:.68rem}.voice-item audio{display:block;width:100%;height:38px}.voice-item .delete{flex:none}.voice-empty{padding:14px 10px;border:1px dashed #d5cbc0;border-radius:11px;color:var(--muted);text-align:center;font-size:.78rem}
.metrics{margin:0 0 12px}.revenue-split{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:17px}.revenue-split div{padding:13px;border:1px solid var(--line);border-radius:12px;background:white}.revenue-split div:last-child{grid-column:1/-1}.revenue-split span{display:block;color:var(--muted);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.revenue-split strong{display:block;margin-top:5px;color:var(--blue);font-family:"Playfair Display",serif;font-size:1.22rem}.score-label{display:grid;gap:12px;margin:14px 1px;color:var(--blue-dark);font-size:.84rem}.score-label strong{color:var(--blue)}input[type=range]{padding:0;accent-color:var(--blue)}.report-card pre{margin:0;white-space:pre-wrap;font-family:Inter,sans-serif;font-size:.84rem;line-height:1.55}.action-row{display:grid;grid-template-columns:1.4fr 1fr;gap:10px}
.history-head{display:flex;align-items:end;justify-content:space-between;gap:10px;margin:30px 1px 12px}.history-head h2{margin-top:4px}.history-tools{display:flex;align-items:center;gap:7px}.history-count{display:grid;place-items:center;min-width:32px;height:32px;padding:0 9px;border-radius:99px;background:var(--blue);color:white;font-size:.8rem;font-weight:700}.clear-history{min-height:32px;padding:5px 8px;border:1px solid #c9bdb2;border-radius:8px;background:white;color:#8b3030;font-size:.68rem;font-weight:700}.clear-history:disabled{opacity:.4}.history-list{display:grid;gap:10px}.history-item{border:1px solid var(--line);border-radius:14px;background:var(--paper);box-shadow:var(--shadow);overflow:hidden}.history-item summary{display:flex;align-items:center;gap:12px;padding:14px;cursor:pointer;list-style:none}.history-item summary::-webkit-details-marker{display:none}.history-date{flex:1}.history-date strong{display:block;color:var(--blue-dark);font-family:"Playfair Display",serif}.history-date span{display:block;margin-top:3px;color:var(--muted);font-size:.74rem}.history-score{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#f1e9d9;color:#745a22;font-weight:700}.history-body{padding:0 14px 15px;border-top:1px solid var(--line)}.history-body pre{margin:14px 0;white-space:pre-wrap;font-family:Inter,sans-serif;font-size:.79rem;line-height:1.5}.history-copy{width:100%;min-height:40px;padding:8px 12px;border:1px solid var(--blue);border-radius:9px;background:white;color:var(--blue);font-size:.78rem;font-weight:700}
.history-pagination{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:9px;margin:14px 0 5px}.history-pagination[hidden]{display:none}.history-pagination button{min-height:40px;padding:8px 10px;font-size:.74rem}.history-pagination button:disabled{opacity:.4;cursor:default}.history-pagination span{min-width:76px;color:var(--muted);font-size:.72rem;font-weight:700;text-align:center}
.history-export{margin:0 0 12px}.history-export:disabled{opacity:.4}.save-hint{margin-top:10px!important;padding:10px;border-radius:9px;background:#f1e9d9;color:#745a22!important;font-size:.76rem!important}
.fab{position:fixed;right:19px;bottom:88px;z-index:12;width:52px;height:52px;border:0;border-radius:50%;background:var(--gold);color:var(--blue-dark);font-size:2rem;line-height:1;box-shadow:0 10px 24px rgba(90,67,15,.25)}
.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:11;display:grid;grid-template-columns:repeat(5,1fr);padding:7px 7px calc(7px + env(safe-area-inset-bottom));border-top:1px solid rgba(22,63,122,.12);background:rgba(255,253,249,.96);backdrop-filter:blur(18px)}.bottom-nav button{position:relative;padding:12px 2px 9px;border:0;background:none;color:#7a828d;font-size:.68rem;font-weight:600}.bottom-nav button.active{color:var(--blue)}.bottom-nav button.active:before{content:"";position:absolute;top:2px;left:50%;width:20px;height:3px;border-radius:4px;background:var(--gold);transform:translateX(-50%)}
dialog{width:min(92vw,480px);padding:0;border:0;border-radius:19px;background:var(--paper);box-shadow:0 25px 80px rgba(13,45,89,.25)}dialog::backdrop{background:rgba(12,25,42,.52);backdrop-filter:blur(3px)}dialog form{padding:20px}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between}.dialog-head h2{margin-top:3px;font-size:1.5rem}.close-btn{border:0;background:none;color:#7c838d;font-size:1.8rem}.dialog-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:9px;margin-top:17px}#dynamicFields{display:grid;gap:13px;margin-top:16px}#dynamicFields label{display:grid;gap:6px;color:var(--blue-dark);font-size:.78rem;font-weight:700}
.custom-days{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0;padding:12px;border:1px solid var(--line);border-radius:12px}.custom-days[hidden]{display:none}.custom-days legend{padding:0 5px;color:var(--blue-dark);font-size:.78rem;font-weight:700}.custom-days label{display:flex!important;align-items:center;gap:5px!important;padding:7px 4px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink)!important;font-size:.75rem!important;font-weight:600!important}.custom-days input{width:17px;min-height:17px;height:17px;padding:0;accent-color:var(--blue)}
.confirm-dialog{padding:22px}.confirm-dialog h2{margin:5px 0 10px;font-size:1.55rem}.confirm-dialog p:not(.eyebrow){margin:0;color:var(--muted);font-size:.9rem;line-height:1.5}
#toast{position:fixed;left:50%;bottom:98px;z-index:30;max-width:90%;padding:11px 15px;border-radius:10px;background:var(--blue-dark);color:white;font-size:.8rem;opacity:0;pointer-events:none;transform:translate(-50%,12px);transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}
.empty{padding:20px 12px;border:1px dashed #d5cbc0;border-radius:13px;color:var(--muted);text-align:center;font-size:.84rem}
@media(min-width:700px){body{padding-bottom:25px}.app-header{padding-left:max(22px,calc((100vw - 760px)/2))}.bottom-nav{position:sticky;top:60px;bottom:auto;width:720px;margin:10px auto 0;border:1px solid var(--line);border-radius:14px;padding:4px}.fab{right:calc((100vw - 760px)/2 + 20px);bottom:28px}main{padding-top:18px}.grid-two{gap:14px}}
@media(max-width:370px){main{padding-left:13px;padding-right:13px}.grid-two{grid-template-columns:1fr}.bottom-nav button{font-size:.62rem}.welcome-row{display:block}.service-state{display:inline-block;margin-bottom:16px}}
