:root{--ink:#17221d;--green:#12372a;--green2:#285944;--paper:#f4f1e8;--card:#fffdf7;--gold:#d99b45;--line:#d9d6cc;--danger:#a83d35;--shadow:0 16px 40px rgba(18,55,42,.12);font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 20% 0,#fff 0,transparent 32%),var(--paper)}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}h1,h2,p{margin-top:0}.muted{color:#667069}.eyebrow{margin:0 0 .25rem;color:var(--gold);font-size:.72rem;font-weight:800;letter-spacing:.18em}.button{min-height:48px;border:0;border-radius:14px;padding:.8rem 1.2rem;font-weight:800;letter-spacing:.04em;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.primary{background:var(--green);color:white}.secondary{background:var(--gold);color:#1c281f}.ghost{background:transparent;border:1px solid var(--line)}.compact{min-height:42px;padding:.6rem 1rem;font-size:.82rem}.icon-button{border:0;background:#e8e9e1;border-radius:50%;width:44px;height:44px;font-size:1.3rem}.alert{margin:1rem 0;padding:.8rem 1rem;border-radius:12px;background:#e5efe9;color:var(--green)}.alert.error{background:#f8e5e3;color:var(--danger)}.hidden{display:none!important}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.login-card{width:min(100%,420px);padding:2rem;background:var(--card);border:1px solid rgba(18,55,42,.1);border-radius:28px;box-shadow:var(--shadow)}.brand-mark{width:56px;height:56px;border-radius:17px;display:grid;place-items:center;background:var(--green);color:var(--gold);font-size:1.6rem;margin-bottom:1.3rem}.login-card h1{font-family:Georgia,serif;font-size:2rem;margin-bottom:.5rem}.stack{display:grid;gap:1rem;margin-top:1.5rem}label{display:grid;gap:.4rem;font-size:.78rem;font-weight:800;letter-spacing:.04em;color:#4e5a53}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;background:white;color:var(--ink);padding:.85rem;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--green2);box-shadow:0 0 0 3px rgba(40,89,68,.12)}textarea{resize:vertical}
.app-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto}.topbar{display:flex;justify-content:space-between;align-items:center;padding:1rem max(1rem,env(safe-area-inset-left));background:rgba(244,241,232,.88);backdrop-filter:blur(12px);z-index:5}.topbar h1{font-family:Georgia,serif;font-size:1.35rem;margin:0}.topbar.sticky{position:sticky;top:0;border-bottom:1px solid rgba(18,55,42,.08)}.voice-main{display:grid;align-content:center;justify-items:center;padding:2rem 1rem 4rem}.date-block{text-align:center}.date-block p{text-transform:capitalize;margin:0;color:#59655f}.date-block strong{display:block;font-family:Georgia,serif;font-size:1.65rem;margin:.2rem}.date-block time{font-size:1.1rem;color:var(--green2)}.recorder{margin-top:3rem;text-align:center}.pulse-ring{width:190px;height:190px;border-radius:50%;display:grid;place-items:center;background:rgba(217,155,69,.16);transition:.25s}.pulse-ring.recording{animation:pulse 1.5s infinite;background:rgba(168,61,53,.13)}.record-button{width:140px;height:140px;border:0;border-radius:50%;background:var(--green);box-shadow:0 20px 45px rgba(18,55,42,.3);cursor:pointer;transition:transform .2s,background .2s}.record-button:active{transform:scale(.95)}.record-button svg{width:58px;fill:var(--gold)}.recording .record-button{background:var(--danger)}.recording .record-button svg{fill:#fff}.recorder h2{margin:1.8rem 0 .35rem;font-size:1rem;letter-spacing:.12em}.recorder .muted{font-size:.82rem}.bottom-nav{position:sticky;bottom:0;display:grid;grid-template-columns:1fr 1fr;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav a{display:grid;justify-items:center;gap:.25rem;padding:.75rem;font-size:.68rem;font-weight:800;letter-spacing:.08em;color:#788078}.bottom-nav a span{font-size:1.3rem}.bottom-nav a.active{color:var(--green)}
.audio-level{width:180px;height:8px;margin:.8rem auto 0;border-radius:99px;overflow:hidden;background:#d9d6cc}.audio-level span{display:block;width:3%;height:100%;border-radius:inherit;background:var(--gold);transition:width .08s linear}
@keyframes pulse{50%{transform:scale(1.06);box-shadow:0 0 0 16px rgba(168,61,53,.05)}}
.confirm-dialog{width:min(94vw,620px);max-height:92dvh;border:0;border-radius:26px;padding:0;overflow:hidden;background:var(--card);box-shadow:var(--shadow)}.confirm-dialog::backdrop{background:rgba(8,22,16,.65);backdrop-filter:blur(4px)}.dialog-card{max-height:92dvh;padding:1.5rem;padding-bottom:max(1.5rem,env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain}.dialog-card h2{font-family:Georgia,serif;margin-bottom:.4rem}.dialog-instruction{color:#59655f;line-height:1.45;margin-bottom:1.25rem}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.summary-grid .wide{grid-column:1/-1}.dialog-card details{margin:1rem 0;padding:1rem;background:var(--paper);border-radius:12px}.dialog-card summary{cursor:pointer;font-weight:800;font-size:.8rem}.dialog-actions{position:sticky;bottom:calc(-1 * max(1.5rem,env(safe-area-inset-bottom)));display:flex;justify-content:flex-end;gap:.75rem;margin:1.25rem -1.5rem calc(-1 * max(1.5rem,env(safe-area-inset-bottom)));padding:1rem 1.5rem max(1rem,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--card);box-shadow:0 -8px 20px rgba(18,55,42,.06)}
.page-shell{max-width:1080px;margin:auto;min-height:100vh;padding:0 1rem 3rem}.page-shell.narrow{max-width:760px}.filters{display:grid;grid-template-columns:2fr repeat(4,1fr) auto;gap:.75rem;align-items:end;padding:1rem 0 1.5rem}.records-list{display:grid;gap:.8rem}.record-card{display:block;background:var(--card);border:1px solid rgba(18,55,42,.1);border-radius:18px;padding:1rem 1.1rem;transition:transform .15s,box-shadow .15s}.record-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.record-meta{display:flex;justify-content:space-between;gap:1rem;color:#657068;font-size:.75rem}.status,.category{display:inline-flex;align-items:center;border-radius:99px;padding:.28rem .6rem;background:#e0ebe5;color:var(--green);font-size:.7rem;font-weight:800}.record-card h2{font-family:Georgia,serif;font-size:1.15rem;margin:.65rem 0 .35rem}.record-card p{color:#566159;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:.7rem}.category{background:#f3e5cf;color:#704d1c}.empty-state{text-align:center;background:var(--card);border-radius:22px;padding:3rem 1rem}.empty-state p{color:#667069;margin:.5rem 0 1.5rem}.back-link{font-weight:800;color:var(--green)}.detail-card{background:var(--card);border-radius:24px;padding:clamp(1.2rem,4vw,2.5rem);margin-top:1rem;box-shadow:var(--shadow)}.detail-card>h1{font-family:Georgia,serif;font-size:clamp(1.8rem,5vw,2.7rem);margin-bottom:.4rem}.detail-date{color:#69736d}.highlight{margin:2rem 0;padding:1.2rem;border-left:4px solid var(--gold);background:var(--paper);border-radius:0 14px 14px 0}.highlight h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em}.highlight p{font-size:1.1rem;line-height:1.65;margin:0}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.detail-grid div{border-top:1px solid var(--line);padding-top:.8rem}.detail-grid dt{font-size:.72rem;font-weight:800;text-transform:uppercase;color:#69736d}.detail-grid dd{margin:.35rem 0;line-height:1.5}.transcription{margin:2rem 0;padding:1rem;border:1px solid var(--line);border-radius:14px}.transcription summary{cursor:pointer;font-weight:800;font-size:.8rem}.transcription p{margin:1rem 0 0;line-height:1.6;color:#556059}.detail-card audio{width:100%}
@media(max-width:800px){.filters{grid-template-columns:1fr 1fr}.search-field{grid-column:1/-1}.filters .button{grid-column:1/-1}.detail-grid{grid-template-columns:1fr}}
@media(max-width:520px){.summary-grid{grid-template-columns:1fr}.summary-grid .wide{grid-column:auto}.dialog-actions{display:grid;grid-template-columns:1fr 1fr}.voice-main{padding-top:1rem}.record-card p{font-size:.9rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
