:root{--bg-1:#FBF8F3;--bg-2:#EEF4F0;--surface:#FFFFFF;--surface-2:#F7F5EF;--primary:#4A7C6F;--primary-deep:#3A6256;--primary-soft:#E5EFEA;--primary-tint:#F1F7F4;--accent:#C98A63;--accent-deep:#A2643E;--accent-soft:#F6ECE2;--danger:#BD5A50;--danger-soft:#F7E7E5;--text:#2C3A35;--text-muted:#6E7C76;--text-faint:#9AA59F;--border:#E8E3DA;--border-strong:#D9D3C8;--ring:rgba(74,124,111,.30);--r-sm:10px;--r:16px;--r-lg:22px;--r-xl:30px;--r-full:999px;--sh-sm:0 1px 2px rgba(44,58,53,.05),0 1px 3px rgba(44,58,53,.05);--sh:0 6px 20px -8px rgba(44,58,53,.18);--sh-lg:0 24px 60px -18px rgba(44,58,53,.30);--sp:8px}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:Rubik,system-ui,sans-serif;color:var(--text);background:radial-gradient(1100px 600px at 90% -10%,rgba(201,138,99,.1),transparent 60%),radial-gradient(900px 600px at -10% 110%,rgba(74,124,111,.12),transparent 55%),linear-gradient(160deg,var(--bg-1) 0,var(--bg-2) 100%);background-attachment:fixed;min-height:100%;font-weight:400;line-height:1.5;-webkit-font-smoothing:antialiased;color-scheme:light}.serif,h1,h2,h3{font-family:Frank Ruhl Libre,Georgia,serif}button{cursor:pointer}button,input,textarea{font-family:inherit}::selection{background:var(--primary-soft)}[hidden]{display:none!important}.btn{border:none;border-radius:var(--r-full);padding:13px 22px;font-size:15px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .15s ease,box-shadow .2s ease,background .2s ease;white-space:nowrap}.btn:active{transform:translateY(1px) scale(.99)}.btn:focus-visible{outline:none;box-shadow:0 0 0 4px var(--ring)}.btn[disabled]{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 8px 18px -8px rgba(58,98,86,.6)}.btn-primary:hover{background:var(--primary-deep)}.btn-ghost{background:transparent;color:var(--text-muted)}.btn-ghost:hover{background:rgba(74,124,111,.08);color:var(--text)}.btn-soft{background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:var(--sh-sm)}.btn-soft:hover{border-color:var(--border-strong);background:var(--surface-2)}.btn-danger{background:transparent;color:var(--danger)}.btn-danger:hover{background:var(--danger-soft)}.btn-danger-solid{background:var(--danger);color:#fff}.btn-danger-solid:hover{filter:brightness(.95)}.btn-block{width:100%}.icon-btn{width:44px;height:44px;border-radius:var(--r-full);border:none;background:transparent;display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);transition:background .2s,color .2s}.icon-btn:hover{background:rgba(74,124,111,.1);color:var(--text)}.icon-btn:focus-visible{outline:none;box-shadow:0 0 0 4px var(--ring)}svg{display:block}.app{max-width:760px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.login-screen{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--sh-lg);padding:40px 34px 34px;animation:rise .6s cubic-bezier(.2,.7,.2,1) both}.brand{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;margin-bottom:30px}.brand-mark{width:62px;height:62px;border-radius:20px;display:grid;place-items:center;margin-bottom:8px;background:linear-gradient(150deg,var(--primary) 0,#5E978A 100%);box-shadow:0 12px 26px -10px rgba(58,98,86,.7)}.brand-name{font-size:34px;font-weight:700;letter-spacing:.5px}.brand-tag{font-size:14px;color:var(--text-muted);font-weight:300}.field{margin-bottom:16px}.field label{display:block;font-size:13.5px;font-weight:500;color:var(--text-muted);margin-bottom:7px;-webkit-padding-start:4px;padding-inline-start:4px}.input{width:100%;background:var(--surface-2);border:1.5px solid transparent;border-radius:var(--r);padding:14px 16px;font-size:16px;color:var(--text);transition:border-color .2s,background .2s,box-shadow .2s}.input::placeholder{color:var(--text-faint)}.input:focus{outline:none;background:var(--surface);border-color:var(--primary);box-shadow:0 0 0 4px var(--ring)}.input.error{border-color:var(--danger);background:#fff}.req{font-weight:600;-webkit-margin-start:2px;margin-inline-start:2px}.field-err,.req{color:var(--danger)}.field-err{display:none;font-size:12.5px;margin-top:6px;-webkit-padding-start:4px;padding-inline-start:4px}.field.show-err .field-err{display:block}.login-foot{margin-top:8px}.form-error{color:var(--danger);font-size:13.5px;margin-top:12px;text-align:center;min-height:1px}.lock-note{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:22px;color:var(--text-faint);font-size:12.5px}.form-flash{background:var(--primary-soft);color:var(--primary-deep);border-radius:var(--r);padding:11px 14px;margin-bottom:20px;font-size:13.5px;text-align:center}.card-title{font-size:22px;font-weight:700;text-align:center;margin-bottom:8px}.card-sub{font-size:14px;text-align:center;margin-bottom:24px;line-height:1.6}.forgot-row{display:flex;justify-content:flex-start;margin:-4px 0 14px}.forgot-link{font-size:13px;color:var(--text-muted);text-decoration:none;padding:4px}.forgot-link:hover{color:var(--primary-deep);text-decoration:underline}.forgot-link:focus-visible{outline:none;box-shadow:0 0 0 4px var(--ring);border-radius:var(--r-sm)}.back-link{display:block;text-align:center;margin-top:18px;font-size:13.5px;color:var(--text-muted);text-decoration:none;padding:6px}.back-link:hover{color:var(--primary-deep);text-decoration:underline}.back-link:focus-visible{outline:none;box-shadow:0 0 0 4px var(--ring);border-radius:var(--r-sm)}.field-hint{font-size:12.5px;color:var(--text-faint);margin-top:6px;-webkit-padding-start:4px;padding-inline-start:4px}.input-reveal{position:relative}.input-reveal .input{-webkit-padding-end:48px;padding-inline-end:48px}.reveal-btn{position:absolute;inset-inline-end:6px;top:50%;transform:translateY(-50%);width:40px;height:40px;border:none;background:transparent;border-radius:var(--r-full);display:grid;place-items:center;color:var(--text-muted)}.reveal-btn:hover{background:rgba(74,124,111,.1);color:var(--text)}.reveal-btn:focus-visible{outline:none;box-shadow:0 0 0 4px var(--ring)}.status-panel{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;margin-bottom:24px}.status-icon{width:56px;height:56px;border-radius:var(--r-full);display:grid;place-items:center;margin-bottom:6px;animation:rise .5s cubic-bezier(.2,.7,.2,1) both}.status-ok{background:var(--primary-soft);color:var(--primary-deep)}.status-warn{background:var(--danger-soft);color:var(--danger)}.status-title{font-size:21px;font-weight:700;margin-bottom:2px}.status-title:focus-visible{outline:none}.status-body{font-size:14px;color:var(--text-muted);line-height:1.7;max-width:34ch}.status-muted{color:var(--text-faint);font-size:13px}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:rgba(251,248,243,.82);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:14px 18px;gap:12px}.topbar,.topbar .tb-brand{display:flex;align-items:center}.topbar .tb-brand{gap:10px;font-weight:700;font-size:22px;font-family:Frank Ruhl Libre,serif}.tb-mark{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(150deg,var(--primary),#5E978A)}.tb-spacer{flex:1 1}.menu-wrap{position:relative}.avatar{width:42px;height:42px;border-radius:var(--r-full);border:none;cursor:pointer;background:linear-gradient(150deg,#6E9A8E,#4A7C6F);color:#fff;font-weight:600;font-size:15px;display:grid;place-items:center;transition:box-shadow .2s}.avatar:focus-visible{outline:none;box-shadow:0 0 0 4px var(--ring)}.menu{position:absolute;inset-inline-end:0;top:52px;min-width:200px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--sh-lg);padding:8px;opacity:0;transform:translateY(-6px) scale(.97);pointer-events:none;transition:.18s ease;transform-origin:top left;z-index:40}.menu.open{opacity:1;transform:none;pointer-events:auto}.menu-head{padding:10px 12px 8px;border-bottom:1px solid var(--border);margin-bottom:6px}.menu-head .mh-name{font-weight:500;font-size:14.5px}.menu-head .mh-mail{font-size:12.5px;color:var(--text-muted)}.menu-item{width:100%;text-align:start;background:none;border:none;border-radius:var(--r-sm);padding:11px 12px;font-size:14.5px;color:var(--text);display:flex;align-items:center;gap:10px}.menu-item:hover{background:var(--surface-2)}.menu-item.danger{color:var(--danger)}.menu-item.danger:hover{background:var(--danger-soft)}.content{flex:1 1;padding:22px 18px 120px}.list-head{margin-bottom:18px}.list-head h2{font-size:27px;font-weight:700;margin-bottom:3px}.list-head .sub{color:var(--text-muted);font-size:14px}.search{position:relative;margin-bottom:18px}.search .s-icon{position:absolute;inset-inline-start:16px;top:50%;transform:translateY(-50%);color:var(--text-faint);pointer-events:none}.search input{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-full);padding:14px 48px;font-size:15.5px;color:var(--text);box-shadow:var(--sh-sm);transition:border-color .2s,box-shadow .2s}.search input::placeholder{color:var(--text-faint)}.search input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--ring)}.s-clear{position:absolute;inset-inline-end:8px;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:var(--r-full);border:none;background:transparent;color:var(--text-faint);display:none;align-items:center;justify-content:center}.s-clear.show{display:flex}.s-clear:hover{background:var(--surface-2);color:var(--text)}.list{flex-direction:column;gap:10px}.card,.list{display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 16px;align-items:center;gap:14px;cursor:pointer;text-align:start;width:100%;box-shadow:var(--sh-sm);transition:transform .14s ease,box-shadow .2s ease,border-color .2s;animation:rise .45s cubic-bezier(.2,.7,.2,1) both}.card:hover{transform:translateY(-2px);box-shadow:var(--sh);border-color:var(--border-strong)}.card:focus-visible{outline:none;box-shadow:0 0 0 4px var(--ring)}.mono{flex-shrink:0;width:48px;height:48px;border-radius:var(--r-full);display:grid;place-items:center;font-weight:600;font-size:17px;color:#fff}.card-main{flex:1 1;min-width:0;display:flex;flex-direction:column}.card-name{font-weight:500;font-size:16.5px;color:var(--text);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-sub{font-size:13.5px;color:var(--text-muted);display:flex;align-items:center;gap:8px}.card-sub .dot{width:3px;height:3px;border-radius:50%;background:var(--text-faint)}.card-contact{margin-top:3px;display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--text-muted)}.card-contact .ci{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:100%}.card-contact .ci svg{flex:none;color:var(--text-faint)}.card-contact .val{direction:ltr;unicode-bidi:-webkit-isolate;unicode-bidi:isolate;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-meta{margin-top:4px;font-size:12.5px;color:var(--text-faint)}.card-debt{color:var(--accent-deep);font-weight:500}.card-acts{display:flex;align-items:center;gap:6px;flex-shrink:0}.card-act{width:34px;height:34px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);display:grid;place-items:center;cursor:pointer;transition:.15s;text-decoration:none;flex:none}.card-act:hover{border-color:var(--primary);color:var(--primary-deep);background:var(--primary-tint)}.card-act:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}.card-act.pay:hover{border-color:var(--accent);color:var(--accent-deep);background:var(--accent-soft)}.rate-pill{flex-shrink:0;background:var(--primary-tint);color:var(--primary-deep);border-radius:var(--r-full);padding:4px 11px;font-size:13px;font-weight:500;white-space:nowrap}.rate-pill small{font-weight:300;color:var(--primary);font-size:11px;-webkit-margin-start:2px;margin-inline-start:2px}.chev{flex-shrink:0;color:var(--text-faint)}.state{text-align:center;padding:60px 24px;display:flex;flex-direction:column;align-items:center;gap:6px;animation:fade .4s ease both}.state-ill{width:96px;height:96px;border-radius:var(--r-xl);display:grid;place-items:center;margin-bottom:14px;background:radial-gradient(circle at 40% 30%,var(--primary-soft),var(--surface-2));color:var(--primary)}.state h3{font-size:21px;font-weight:700}.state p{color:var(--text-muted);font-size:14.5px;max-width:300px;margin-bottom:14px}.skeleton .sk-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 16px;display:flex;align-items:center;gap:14px;margin-bottom:10px}.sk{background:linear-gradient(90deg,#ece8e0 25%,#f6f3ec 50%,#ece8e0 75%);background-size:200% 100%;animation:shimmer 1.3s infinite;border-radius:8px}.sk-mono{width:48px;height:48px;border-radius:50%;flex-shrink:0}.sk-line{height:12px}.fab{position:fixed;bottom:24px;inset-inline-start:50%;transform:translateX(50%);z-index:30;background:var(--primary);color:#fff;border:none;border-radius:var(--r-full);padding:15px 26px;font-size:16px;font-weight:500;display:inline-flex;align-items:center;gap:9px;box-shadow:0 14px 30px -8px rgba(58,98,86,.7);transition:transform .15s,background .2s}.fab:hover{background:var(--primary-deep);transform:translateX(50%) translateY(-2px)}.fab:active{transform:translateX(50%) translateY(0) scale(.98)}.fab:focus-visible{outline:none;box-shadow:0 0 0 5px var(--ring),0 14px 30px -8px rgba(58,98,86,.7)}.overlay{position:fixed;inset:0;z-index:50;background:rgba(44,58,53,.32);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s}.overlay.open{opacity:1;pointer-events:auto}.panel{width:100%;max-width:560px;background:var(--surface);border-radius:var(--r-xl) var(--r-xl) 0 0;max-height:94dvh;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .32s cubic-bezier(.2,.8,.2,1);box-shadow:var(--sh-lg)}.overlay.open .panel{transform:none}.panel-head{display:flex;align-items:center;gap:8px;padding:18px 18px 8px}.panel-head h3{flex:1 1;font-size:21px;font-weight:700}.panel-grip{width:38px;height:4px;border-radius:999px;background:var(--border-strong);margin:10px auto 0}.panel-body{padding:8px 22px 12px;overflow-y:auto}.form-row2{display:flex;gap:12px}.form-row2 .field{flex:1 1}.input-prefix{position:relative}.input-prefix .pfx{position:absolute;inset-inline-start:14px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:16px;pointer-events:none}.input-prefix .input{-webkit-padding-start:34px;padding-inline-start:34px}textarea.input{resize:vertical;min-height:74px;line-height:1.55}.panel-foot{padding:14px 22px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--border);display:flex;align-items:center;gap:10px;background:var(--surface);border-radius:0 0 var(--r-xl) var(--r-xl)}.panel-foot .grow{flex:1 1}.modal-overlay{position:fixed;inset:0;z-index:60;background:rgba(44,58,53,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .2s}.modal-overlay.open{opacity:1;pointer-events:auto}.modal{width:100%;max-width:380px;background:var(--surface);border-radius:var(--r-lg);padding:26px 24px 20px;text-align:center;box-shadow:var(--sh-lg);transform:scale(.94);transition:transform .22s cubic-bezier(.2,.8,.2,1)}.modal-overlay.open .modal{transform:none}.modal-ill{width:60px;height:60px;border-radius:var(--r-full);display:grid;place-items:center;margin:0 auto 14px;background:var(--danger-soft);color:var(--danger)}.modal-ill.calm{background:var(--primary-soft);color:var(--primary-deep)}.idle-count{font-family:Frank Ruhl Libre,Georgia,serif;font-size:30px;font-weight:700;color:var(--primary-deep);margin:-6px 0 18px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.modal h3{font-size:20px;font-weight:700;margin-bottom:6px}.modal p{color:var(--text-muted);font-size:14.5px;margin-bottom:20px}.modal p b{color:var(--text);font-weight:600}.modal-actions{display:flex;gap:10px}.modal-actions .btn{flex:1 1}.toasts{position:fixed;bottom:22px;inset-inline:0;z-index:80;flex-direction:column;gap:10px;pointer-events:none}.toast,.toasts{display:flex;align-items:center}.toast{background:var(--text);color:#fff;border-radius:var(--r-full);padding:12px 16px 12px 20px;gap:12px;font-size:14.5px;box-shadow:var(--sh-lg);pointer-events:auto;animation:toastIn .3s cubic-bezier(.2,.8,.2,1) both;max-width:90vw}.toast.out{animation:toastOut .25s ease forwards}.toast .t-check{color:#8FD0BD;display:flex}.toast .t-undo{background:rgba(255,255,255,.16);border:none;color:#fff;font-family:inherit;border-radius:var(--r-full);padding:6px 14px;font-size:13.5px;font-weight:500}.toast .t-undo:hover{background:rgba(255,255,255,.26)}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes shimmer{to{background-position:-200% 0}}@keyframes toastIn{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}@keyframes toastOut{to{opacity:0;transform:translateY(10px) scale(.97)}}@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}.mono.sm{width:38px;height:38px;font-size:14px}.mono.lg{width:60px;height:60px;font-size:22px}.btn-sm{padding:9px 16px;font-size:14px}.btn-danger-solid[disabled]{opacity:.5}.chip{display:inline-flex;align-items:center;gap:5px;border-radius:var(--r-full);padding:4px 11px;font-size:12.5px;font-weight:500;white-space:nowrap}.chip .cdot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}.chip-held{background:var(--primary-soft);color:var(--primary-deep)}.chip-noshow{background:var(--danger-soft);color:var(--danger)}.chip-cancelled{color:var(--text-muted)}.chip-cancelled,.segmented{background:var(--surface-2)}.segmented{display:flex;border:1px solid var(--border);border-radius:var(--r-full);padding:4px;gap:4px;margin-bottom:18px}.segmented button{flex:1 1;border:none;background:transparent;border-radius:var(--r-full);padding:10px 12px;font-size:14.5px;color:var(--text-muted);font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:background .2s,color .2s,box-shadow .2s}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:var(--sh-sm)}.segmented button:focus-visible{outline:none;box-shadow:0 0 0 4px var(--ring)}.view-head{margin-bottom:16px}.view-head h2{font-size:27px;font-weight:700;margin-bottom:3px}.view-head .sub{color:var(--text-muted);font-size:14px}.detail-top{display:flex;align-items:center;gap:6px;margin-bottom:14px}.detail-top .back{-webkit-margin-start:-8px;margin-inline-start:-8px}.detail-top .dt-title{font-size:15px;color:var(--text-muted);font-weight:500}.patient-hero{display:flex;flex-direction:column;gap:13px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px;box-shadow:var(--sh-sm);margin-bottom:6px;animation:rise .45s cubic-bezier(.2,.7,.2,1) both}.hero-row{display:flex;align-items:center;gap:14px}.hero-main{flex:1 1;min-width:0}.hero-name{font-size:21px;font-weight:600;line-height:1.2;overflow-wrap:anywhere}.hero-contact{margin-top:6px;display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--text-muted)}.hero-contact .ci{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:100%}.hero-contact .ci svg{flex:none;color:var(--text-faint)}.hero-contact .val{direction:ltr;unicode-bidi:-webkit-isolate;unicode-bidi:isolate;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-contact .muted{color:var(--text-faint)}.hero-side{display:flex;flex-direction:row;align-items:center;gap:8px;flex-shrink:0;align-self:flex-start}.hero-action{width:38px;height:38px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);display:grid;place-items:center;box-shadow:var(--sh-sm);transition:.15s;text-decoration:none;flex-shrink:0}.hero-action:hover{border-color:var(--primary);color:var(--primary-deep);background:var(--primary-tint)}.hero-action:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}.hero-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--text-muted)}.hero-foot .hf-m b{color:var(--text);font-weight:600}.hero-foot .hf-dot{color:var(--border-strong)}.hero-foot .hf-grow{flex:1 1;min-width:8px}.hero-foot .hf-balwrap{display:inline-flex;align-items:center}.hero-foot .hf-bal b{font-weight:600}.hero-foot .hf-bal.owed b{color:var(--accent-deep)}.hero-foot .hf-bal.ok{color:var(--primary-deep);font-weight:500}.hero-foot .hf-bal.muted{color:var(--text-faint)}.hero-foot .hf-pay{background:none;border:none;color:var(--accent-deep);font-weight:600;font-size:13px;cursor:pointer;font-family:inherit;padding:0;-webkit-margin-start:10px;margin-inline-start:10px;text-decoration:underline;text-underline-offset:2px}.hero-foot .hf-pay:hover{color:var(--accent)}.section-head{display:flex;align-items:center;gap:8px;margin:22px 2px 12px}.section-head h3{font-size:20px;font-weight:700}.section-head .count{color:var(--text-muted);font-size:13.5px}.section-head .grow{flex:1 1}.sessions{display:flex;flex-direction:column;gap:10px}.more-future{align-self:center;margin-top:2px}.session-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:13px 15px;display:flex;gap:13px;align-items:flex-start;cursor:pointer;width:100%;text-align:start;box-shadow:var(--sh-sm);transition:transform .14s,box-shadow .2s,border-color .2s;animation:rise .45s cubic-bezier(.2,.7,.2,1) both}.session-item:hover{transform:translateY(-2px);box-shadow:var(--sh);border-color:var(--border-strong)}.session-item:focus-visible{outline:none;box-shadow:0 0 0 4px var(--ring)}.s-date{flex-shrink:0;text-align:center;min-width:54px;-webkit-padding-end:13px;padding-inline-end:13px;-webkit-border-end:1px solid var(--border);border-inline-end:1px solid var(--border)}.s-day{font-weight:600;font-size:13.5px;color:var(--text)}.s-time{font-size:12px;color:var(--text-faint);margin-top:3px;direction:ltr}.s-body{flex:1 1;min-width:0}.s-top{display:flex;align-items:center;gap:9px;margin-bottom:5px}.s-name{font-weight:500;font-size:15.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-top .grow{flex:1 1}.s-meta{font-size:12.5px;color:var(--text-faint);margin-bottom:4px}.s-note{font-size:13.5px;color:var(--text-muted);line-height:1.5;white-space:pre-line;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.s-note.empty{color:var(--text-faint);font-style:italic}.state.compact{padding:36px 20px}.state.compact .state-ill{width:72px;height:72px;margin-bottom:10px}.state.compact h3{font-size:18px}.ctx-chip{display:inline-flex;align-items:center;gap:9px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-full);padding:6px 14px 6px 7px;margin-bottom:16px;font-size:14.5px;font-weight:500}.seg-radio{display:flex;gap:8px}.seg-radio .opt{flex:1 1;position:relative}.seg-radio input{position:absolute;opacity:0;width:0;height:0}.seg-radio label{display:flex;align-items:center;justify-content:center;gap:6px;text-align:center;border:1.5px solid var(--border);background:var(--surface-2);border-radius:var(--r);padding:12px 6px;font-size:14px;color:var(--text-muted);cursor:pointer;transition:.18s}.seg-radio label .cdot{width:7px;height:7px;border-radius:50%;background:var(--text-faint)}.seg-radio input:focus-visible+label{box-shadow:0 0 0 4px var(--ring)}.seg-radio input[value=held]:checked+label{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-deep);font-weight:500}.seg-radio input[value=held]:checked+label .cdot{background:var(--primary)}.seg-radio input[value=no_show]:checked+label{background:var(--danger-soft);border-color:var(--danger);color:var(--danger);font-weight:500}.seg-radio input[value=no_show]:checked+label .cdot{background:var(--danger)}.seg-radio input[value=cancelled]:checked+label{background:var(--surface);border-color:var(--border-strong);color:var(--text);font-weight:500}.seg-radio input[value=cancelled]:checked+label .cdot{background:var(--text-muted)}.rs-help{font-size:12px;color:var(--text-faint);margin-top:6px;-webkit-padding-start:2px;padding-inline-start:2px}.rte{border:1.5px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--surface-2);transition:border-color .2s,box-shadow .2s,background .2s}.rte:focus-within{background:var(--surface);border-color:var(--primary);box-shadow:0 0 0 4px var(--ring)}.rte-toolbar{display:flex;gap:2px;padding:6px;border-bottom:1px solid var(--border);flex-wrap:wrap}.rte-btn{min-width:34px;height:34px;padding:0 8px;border-radius:var(--r-sm);border:none;background:transparent;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;font-size:15px;transition:background .15s,color .15s}.rte-btn:hover{background:rgba(74,124,111,.1);color:var(--text)}.rte-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}.rte-btn b{font-weight:700}.rte-btn i{font-style:italic;font-family:Georgia,serif}.rte-sep{width:1px;background:var(--border);margin:4px}.rte-area{min-height:130px;max-height:320px;overflow-y:auto;padding:12px 16px;font-size:16px;line-height:1.6;color:var(--text);outline:none}.rte-area:empty:before{content:attr(data-placeholder);color:var(--text-faint);pointer-events:none}.rte-area ol,.rte-area ul{-webkit-padding-start:24px;padding-inline-start:24px;margin:4px 0}.rte-area li{margin:2px 0}.rte-area p{margin:0 0 6px}.s-note ol,.s-note ul{-webkit-padding-start:20px;padding-inline-start:20px;margin:0}.s-note p{margin:0}.modal{max-width:410px}.confirm-type{text-align:start;margin-bottom:18px}.confirm-type label{display:block;font-size:13px;color:var(--text-muted);margin-bottom:7px}.confirm-type label b,.toast .t-undo{color:var(--text)}.toast .t-undo{background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.18);padding:7px 16px;font-weight:600}.toast .t-undo:hover{background:var(--primary-soft);color:var(--primary-deep)}@media (min-width:680px){.content{padding:30px 26px 120px}.list-head h2,.view-head h2{font-size:30px}.overlay{align-items:center;padding:24px}.panel{border-radius:var(--r-xl);max-height:90dvh}.panel-grip{display:none}.fab{inset-inline-start:auto;inset-inline-end:max(26px,calc(50% - 380px + 26px));transform:none}.fab:hover{transform:translateY(-2px)}}.hero-balance{display:flex;align-items:center;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.hero-balance .hb-label{font-size:13.5px;font-weight:500;color:var(--text-muted);display:inline-flex;align-items:center;gap:6px}.hero-balance .grow{flex:1 1}.hero-balance .hb-amount{font-family:Frank Ruhl Libre,serif;font-weight:700;font-size:23px;line-height:1;direction:ltr;unicode-bidi:-webkit-isolate;unicode-bidi:isolate}.hero-balance .hb-pay{flex-shrink:0;padding:8px 14px;font-size:13.5px}.bc-ico{display:inline-flex}.hero-balance.owed .hb-amount,.hero-balance.owed .hb-label{color:var(--accent-deep)}.hero-balance.credit .hb-amount,.hero-balance.credit .hb-label,.hero-balance.settled .hb-amount,.hero-balance.settled .hb-label{color:var(--primary-deep)}.hero-balance.none .hb-amount{font-size:14.5px;font-weight:500;color:var(--text-muted);font-family:Rubik,sans-serif}.segmented .tab-count{font-size:12px;color:var(--text-faint);font-weight:600;min-width:14px;text-align:center}.segmented .tab-count:empty{display:none}.segmented button.on .tab-count{color:var(--primary)}.uninvoiced{display:flex;align-items:center;gap:10px;background:var(--accent-soft);border:1px solid #ebd9cc;border-radius:var(--r);padding:11px 14px;margin-bottom:12px;font-size:13.5px;color:var(--accent-deep);font-weight:500;animation:fade .4s ease both}.uninvoiced svg{flex-shrink:0}.uninvoiced b{font-weight:700}.s-amount{flex-shrink:0;font-size:14px;font-weight:600;direction:ltr;unicode-bidi:-webkit-isolate;unicode-bidi:isolate;color:var(--primary-deep)}.s-amount.off{color:var(--text-faint);font-weight:500;font-size:13px}.ledger-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:13px 15px;display:flex;gap:13px;align-items:center;cursor:pointer;width:100%;text-align:start;box-shadow:var(--sh-sm);transition:transform .14s,box-shadow .2s,border-color .2s;animation:rise .45s cubic-bezier(.2,.7,.2,1) both}.ledger-row:hover{transform:translateY(-2px);box-shadow:var(--sh);border-color:var(--border-strong)}.ledger-row:focus-visible{outline:none;box-shadow:0 0 0 4px var(--ring)}.lr-ico{flex-shrink:0;width:38px;height:38px;border-radius:var(--r-full);display:grid;place-items:center}.lr-ico.pay{background:var(--primary-soft);color:var(--primary-deep)}.lr-ico.charge{background:var(--accent-soft);color:var(--accent-deep)}.lr-body{flex:1 1;min-width:0}.lr-title{font-weight:500;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lr-meta{font-size:12.5px;color:var(--text-faint);margin-top:3px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lr-meta .dot{width:3px;height:3px;border-radius:50%;background:var(--text-faint)}.inv-yes{color:var(--primary)}.inv-no,.inv-yes{display:inline-flex;align-items:center;gap:4px}.inv-no{color:var(--text-faint)}.lr-amount{flex-shrink:0;font-weight:600;font-size:16.5px;direction:ltr;unicode-bidi:-webkit-isolate;unicode-bidi:isolate}.lr-amount.pay{color:var(--primary-deep)}.lr-amount.charge{color:var(--accent-deep)}.checkrow{display:flex;align-items:center;gap:13px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r);padding:13px 15px;cursor:pointer;transition:border-color .2s,background .2s}.checkrow:hover{border-color:var(--border-strong)}.checkrow input{width:20px;height:20px;accent-color:var(--primary);flex-shrink:0;cursor:pointer}.checkrow .cr-text{flex:1 1}.cr-title{font-size:14.5px;font-weight:500;color:var(--text)}.cr-sub{font-size:12.5px;color:var(--text-muted);margin-top:1px}.hint{font-size:12px;color:var(--text-faint);margin-top:6px;-webkit-padding-start:4px;padding-inline-start:4px}@media (min-width:680px){.hero-balance .hb-amount{font-size:25px}}.chip-planned{background:var(--accent-soft);color:var(--accent-deep)}.src-badge{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:500;color:var(--text-faint);-webkit-margin-start:8px;margin-inline-start:8px}.src-badge svg{opacity:.8}.src-badge.inline{-webkit-margin-start:6px;margin-inline-start:6px;padding:1px 7px;border-radius:var(--r-full);background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border)}.review-flag{display:inline-flex;align-items:center;font-size:11.5px;font-weight:500;background:var(--accent-soft);color:var(--accent-deep);border-radius:var(--r-full);padding:2px 9px;-webkit-margin-end:6px;margin-inline-end:6px}.review-flag.muted{background:var(--surface-2);color:var(--text-muted)}.sync-row{display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:9px 14px;margin-bottom:12px;font-size:13px;color:var(--text-muted)}.sync-row .sr-dot{width:8px;height:8px;border-radius:50%;background:var(--primary);flex-shrink:0}.sync-row.err{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-deep)}.sync-row.err .sr-dot{background:var(--accent-deep)}.sync-row .sr-btn{display:inline-flex;align-items:center;gap:5px;background:transparent;border:none;color:var(--primary-deep);font-weight:600;font-size:13px;cursor:pointer;padding:4px 8px;border-radius:var(--r-sm)}.sync-row .sr-btn:hover{background:var(--primary-soft)}.sync-row .sr-btn:disabled{opacity:.5;cursor:default}.sr-spin{transform-origin:50% 50%}.sr-spin.on{animation:sr-rotate .9s linear infinite}@keyframes sr-rotate{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.sr-spin.on{animation:none}}.post-sync-cue{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;background:var(--primary-tint);border:1px solid var(--primary-soft);border-radius:var(--r);padding:10px 14px;margin-bottom:12px;font-size:13px;color:var(--primary-deep);animation:fade .4s ease both}.post-sync-cue .psc-main{font-weight:600}.post-sync-cue .psc-hint{color:var(--text-muted);font-weight:400}.post-sync-cue .psc-x{-webkit-margin-start:auto;margin-inline-start:auto;background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:3px;border-radius:var(--r-sm);display:grid;place-items:center}.post-sync-cue .psc-x:hover{background:rgba(0,0,0,.05);color:var(--text)}.connect-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:26px 22px;text-align:center;box-shadow:var(--sh-sm);margin-bottom:16px;animation:fade .4s ease both}.connect-card .cc-ico{width:60px;height:60px;border-radius:var(--r-lg);margin:0 auto 12px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-deep)}.connect-card h3{font-size:20px;font-weight:700;margin-bottom:6px}.connect-card p{color:var(--text-muted);font-size:14px;max-width:340px;margin:0 auto 16px}.connect-card .cc-foot{margin-top:12px;font-size:12px;color:var(--text-faint)}.connect-card .btn{display:inline-flex}.gate-ladder{list-style:none;text-align:start;max-width:300px;margin:0 auto 16px;display:flex;flex-direction:column;gap:9px}.gate-ladder li{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text-muted)}.gate-ladder .gl-num{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--text-muted);font-size:13px;font-weight:600;flex-shrink:0}.gate-ladder .done-step{color:var(--text)}.gate-ladder .done-step .gl-num{background:var(--primary);color:#fff}.agenda-divider{display:flex;align-items:center;gap:12px;margin:18px 2px 10px;color:var(--text-faint);font-size:12.5px;font-weight:500}.agenda-divider:after,.agenda-divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.session-item.today{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary-soft)}.locked-hint{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-faint);margin:-4px 2px 10px}.session-item.today .mono{box-shadow:0 0 0 2px var(--primary-soft)}input[readonly]{background:var(--surface-2);color:var(--text-muted);cursor:default}.review-banner{background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--r);padding:11px 14px;font-size:13px;line-height:1.5;margin-bottom:12px}.review-banner,.review-banner strong{color:var(--accent-deep)}.pick-intro{font-size:13.5px;color:var(--text-muted);line-height:1.55;margin-bottom:14px}.pick-loading{padding:24px 0;text-align:center;color:var(--text-muted);font-size:14px}.pick-list{display:flex;flex-direction:column;gap:10px}.cal-dot{display:inline-block;width:10px;height:10px;border-radius:3px;-webkit-margin-end:8px;margin-inline-end:8px;vertical-align:middle}.cal-primary{color:var(--text-faint);font-weight:400;font-size:12.5px}.set-row{display:flex;align-items:baseline;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.set-row.col{flex-direction:column;align-items:stretch;gap:8px}.set-label{font-size:12.5px;color:var(--text-faint);min-width:96px}.set-val{font-size:14px;color:var(--text);flex:1 1}.set-cals{display:flex;flex-wrap:wrap;gap:8px}.set-cal{display:inline-flex;align-items:center;font-size:13px;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-full);padding:4px 12px}.set-explain{font-size:13px;color:var(--text-muted);line-height:1.6;margin:16px 0}.set-actions{gap:10px;justify-content:flex-end}.lo-bar,.set-actions{display:flex;flex-wrap:wrap}.lo-bar{align-items:center;gap:12px;margin-bottom:16px}.vswitch{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-full);padding:3px;gap:3px}.vswitch button{border:none;background:transparent;border-radius:var(--r-full);padding:8px 15px;font-size:13.5px;color:var(--text-muted);font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:background .2s,color .2s,box-shadow .2s}.vswitch button.on{background:var(--surface);color:var(--text);box-shadow:var(--sh-sm)}.vswitch button:focus-visible{outline:none;box-shadow:0 0 0 4px var(--ring)}.filter-seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-full);padding:4px;gap:4px;-webkit-margin-start:auto;margin-inline-start:auto}.filter-seg button{border:none;background:transparent;border-radius:var(--r-full);padding:8px 16px;font-size:13.5px;color:var(--text-muted);font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:background .2s,color .2s,box-shadow .2s}.filter-seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--sh-sm)}.filter-seg button .cnt{font-size:11.5px;color:var(--text-faint);font-weight:500}.filter-seg button.on .cnt{color:var(--primary)}.filter-seg button:focus-visible{outline:none;box-shadow:0 0 0 4px var(--ring)}.filter-seg.pd-filter{display:flex;width:-moz-fit-content;width:fit-content;margin:0 0 16px}.sec-label{display:flex;align-items:center;gap:10px;margin:6px 2px 12px}.sec-label span{font-size:13px;color:var(--text-faint);font-weight:600}.sec-label .sl-rule{flex:1 1;height:1px;background:var(--border)}.sec-label.future span{color:var(--accent-deep)}.now-divider{display:flex;align-items:center;gap:10px;margin:20px 2px;scroll-margin:120px}.now-divider .nd-dot{width:9px;height:9px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 4px var(--primary-soft);flex-shrink:0}.now-divider .nd-label{font-size:12px;font-weight:600;color:var(--primary-deep);background:var(--primary-soft);border-radius:var(--r-full);padding:3px 11px;flex-shrink:0}.now-divider .nd-rule{flex:1 1;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--primary-soft),var(--primary) 50%,var(--primary-soft))}.day-group{margin-bottom:2px}.day-head{display:flex;align-items:center;gap:9px;margin:14px 2px 8px}.day-head .dh-label{font-size:13.5px;font-weight:600;color:var(--text)}.day-head .dh-rule{flex:1 1;height:1px;background:var(--border)}.day-head.today .dh-label{color:var(--primary-deep)}.day-head .dh-pill{background:var(--primary);color:#fff;font-size:11px;font-weight:600;border-radius:var(--r-full);padding:2px 9px}.state.compact.slim{padding:22px 16px}.state.compact.slim p{margin:0;color:var(--text-muted);font-size:14px}.cal-nav{display:flex;align-items:center;gap:6px;margin:2px 0 14px}.cal-nav .cn-range{font-family:Frank Ruhl Libre,Georgia,serif;font-size:18px;font-weight:700;min-width:150px;text-align:center}.cal-nav .cn-today{-webkit-margin-start:auto;margin-inline-start:auto}.cal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);overflow:hidden}.cal-daysrow{display:grid;grid-template-columns:46px repeat(7,1fr);border-bottom:1px solid var(--border);background:var(--surface-2)}.cal-daysrow .cd-axis,.cal-daysrow .cd-day{-webkit-border-start:1px solid var(--border);border-inline-start:1px solid var(--border)}.cal-daysrow .cd-day{padding:9px 4px;text-align:center}.cal-daysrow .cd-day .cd-name{font-size:12px;color:var(--text-muted);font-weight:500}.cal-daysrow .cd-day .cd-num{font-size:16px;font-weight:600;color:var(--text);margin-top:1px;font-family:Frank Ruhl Libre,Georgia,serif}.cal-daysrow .cd-day.past{opacity:.62}.cal-daysrow .cd-day.today{background:var(--primary-soft)}.cal-daysrow .cd-day.today .cd-name,.cal-daysrow .cd-day.today .cd-num{color:var(--primary-deep)}.cal-grid{display:grid;grid-template-columns:46px repeat(7,1fr);position:relative}.cal-axis{display:flex;flex-direction:column}.cal-axis .ax-h{font-size:11px;color:var(--text-faint);text-align:center;direction:ltr;display:flex;align-items:flex-start;justify-content:center;padding-top:0;transform:translateY(-7px)}.cal-col{position:relative;-webkit-border-start:1px solid var(--border);border-inline-start:1px solid var(--border);background-image:repeating-linear-gradient(to bottom,transparent,transparent 47px,var(--border) 47px,var(--border) 48px)}.cal-col.past{background-color:rgba(247,245,239,.55)}.cal-col.today{background-color:rgba(229,239,234,.32)}.evt{position:absolute;inset-inline:4px;border-radius:9px;padding:5px 7px;overflow:hidden;cursor:pointer;border:1px solid transparent;font-size:11.5px;line-height:1.2;text-align:start;display:flex;flex-direction:column;gap:1px;transition:transform .12s,box-shadow .2s,filter .2s;box-shadow:var(--sh-sm)}.evt:hover{transform:translateY(-1px);box-shadow:var(--sh);z-index:5;filter:saturate(1.08)}.evt:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring);z-index:6}.evt .ev-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.evt .ev-time{font-size:10.5px;opacity:.8}.evt.held{background:var(--primary-soft);border-color:#CFE2DA;color:var(--primary-deep)}.evt.noshow{background:var(--danger-soft);border-color:#EBC9C5;color:var(--danger)}.evt.cancelled{background:var(--surface-2);border-color:var(--border-strong);color:var(--text-muted)}.evt.cancelled .ev-name{text-decoration:line-through}.evt.planned{background:var(--accent-soft);border-color:#E7CBB3;color:var(--accent-deep)}.evt.flagged:after{content:"";position:absolute;top:5px;inset-inline-start:5px;width:6px;height:6px;border-radius:50%;background:var(--accent)}.now-line{inset-inline:0;height:2px;z-index:4;pointer-events:none}.now-line,.now-line:before{position:absolute;background:var(--danger)}.now-line:before{content:"";inset-inline-start:-3px;top:-3px;width:8px;height:8px;border-radius:50%}.cal-legend{display:flex;flex-wrap:wrap;gap:14px;margin:14px 2px 0;font-size:12px;color:var(--text-muted)}.cal-legend .lg{display:inline-flex;align-items:center;gap:6px}.cal-legend .sw{width:12px;height:12px;border-radius:4px;border:1px solid}.cal-legend .sw.held{background:var(--primary-soft);border-color:#CFE2DA}.cal-legend .sw.noshow{background:var(--danger-soft);border-color:#EBC9C5}.cal-legend .sw.cancelled{background:var(--surface-2);border-color:var(--border-strong)}.cal-legend .sw.planned{background:var(--accent-soft);border-color:#E7CBB3}@media(max-width:680px){.cal-daysrow,.cal-grid{grid-template-columns:38px repeat(7,1fr)}.cal-daysrow .cd-day .cd-name{font-size:10.5px}.evt{font-size:10px;padding:4px 5px}.evt .ev-time{display:none}.lo-bar .filter-seg{-webkit-margin-start:0;margin-inline-start:0;width:100%;justify-content:space-between}.lo-bar .filter-seg button{flex:1 1;justify-content:center}}:root{--hl-amber:#F4E5B6;--hl-sage:#CFE7D6;--hl-rose:#F1D3DD;--hl-sky:#CFE2EF;--hl-clay:#F0D8C5;--hl-lilac:#E0D4EE}mark{background:transparent;color:inherit;border-radius:4px;padding:.04em .14em;box-decoration-break:clone;-webkit-box-decoration-break:clone}mark[data-hl=amber]{background:var(--hl-amber)}mark[data-hl=sage]{background:var(--hl-sage)}mark[data-hl=rose]{background:var(--hl-rose)}mark[data-hl=sky]{background:var(--hl-sky)}mark[data-hl=clay]{background:var(--hl-clay)}mark[data-hl=lilac]{background:var(--hl-lilac)}.rte-btn.active{background:var(--surface);color:var(--primary-deep)}.rte-toolbar.sticky{position:-webkit-sticky;position:sticky;top:0;z-index:5}.hl-wrap{position:relative}.hl-btn,.hl-wrap{display:inline-flex}.hl-btn{align-items:center;gap:3px;min-width:auto;padding:0 9px}.hl-btn .swatch-cur{width:13px;height:13px;border-radius:4px;border:1px solid rgba(0,0,0,.12)}.hl-btn .caret{font-size:9px;color:var(--text-faint)}.hl-pop{position:absolute;top:40px;inset-inline-start:0;z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--sh);padding:10px;width:188px}.hl-pop.open{animation:rise .14s ease both}.hl-pop .swatches{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.swatch{height:38px;border-radius:10px;border:2px solid rgba(0,0,0,.06);cursor:pointer;position:relative;transition:transform .1s}.swatch:hover{transform:scale(1.06)}.swatch:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.swatch[aria-checked=true]:after{content:"\2713";position:absolute;inset:0;display:grid;place-items:center;color:rgba(44,58,53,.7);font-size:14px;font-weight:600}.hl-clear{margin-top:9px;width:100%;border:1px dashed var(--border-strong);background:var(--surface-2);color:var(--text-muted);border-radius:9px;padding:8px;font-size:12.5px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px}.hl-clear:hover{border-color:var(--danger);color:var(--danger)}.diary-wrap{max-width:760px;margin:0 auto;padding:0 16px 120px}.diary-head{padding:18px 2px 8px;animation:rise .5s ease both}.diary-head .backrow{display:flex;align-items:center;gap:8px;margin-bottom:14px}.diary-page .back-btn{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;color:var(--primary-deep);font-size:14px;font-weight:500;cursor:pointer;padding:8px 10px 8px 6px;border-radius:var(--r-full);-webkit-margin-start:-6px;margin-inline-start:-6px;text-decoration:none}.diary-page .back-btn:hover{background:var(--primary-tint)}.diary-page .patient-id{display:flex;align-items:center;gap:13px}.diary-page .patient-id .meta h1{font-size:25px;font-weight:700;line-height:1.15}.diary-page .patient-id .meta .sub{color:var(--text-muted);font-size:13.5px;margin-top:2px}.diary-page .patient-id .meta .sub b{color:var(--text);font-weight:600}.diary-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:22px 2px 12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.diary-bar .t{font-weight:700;font-size:19px}.diary-bar .hint{color:var(--text-faint);font-size:12.5px;display:flex;align-items:center;gap:6px}.diary-page .timeline{position:relative;-webkit-padding-start:2px;padding-inline-start:2px}.diary-page .entry{position:relative;margin:0 0 16px;animation:rise .5s ease both}.diary-page .entry-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);overflow:hidden;transition:border-color .18s,box-shadow .18s}.diary-page .entry.editing .entry-card{border-color:var(--primary);box-shadow:var(--sh)}.diary-page .entry-head{display:flex;align-items:center;gap:10px;padding:14px 16px 10px;flex-wrap:wrap;min-height:58px}.diary-page .entry-head .grow{flex:1 1}.diary-page .date-chip{display:inline-flex;align-items:baseline;gap:7px}.diary-page .date-chip .d{font-weight:700;font-size:16px;color:var(--text)}.diary-page .date-chip .time{font-size:12.5px;color:var(--text-muted);direction:ltr;unicode-bidi:-webkit-isolate;unicode-bidi:isolate}.chip-standing{background:var(--accent-soft);color:var(--accent-deep)}.diary-page .source-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--text-faint)}.diary-page .review-flag{display:inline-flex;color:var(--accent-deep)}.diary-page .edit-btn{display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:10px;cursor:pointer;transition:.15s}.diary-page .edit-btn:hover{border-color:var(--primary);color:var(--primary-deep);background:var(--primary-tint)}.diary-page .note-body{padding:2px 16px 16px;font-size:15.5px;line-height:1.72;color:var(--text);white-space:pre-line}.diary-page .note-body.reading{cursor:pointer;transition:background .15s}.diary-page .note-body.reading:hover{background:var(--surface-2)}.diary-page .note-body.reading:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--ring)}.diary-page .note-body p{margin:0 0 9px}.diary-page .note-body p:last-child{margin-bottom:0}.diary-page .note-body ol,.diary-page .note-body ul{margin:4px 0 9px;-webkit-padding-start:22px;padding-inline-start:22px}.diary-page .note-body li{margin-bottom:4px}.diary-page .note-body b,.diary-page .note-body strong{font-weight:600}.diary-page .note-body.empty{color:var(--text-faint);font-size:14.5px}.diary-page .note-body.reading.clamp-collapsed{position:relative;max-height:248px;overflow:hidden}.diary-page .note-body.reading.clamp-collapsed:after{content:"";position:absolute;inset-inline:0;bottom:0;height:62px;background:linear-gradient(to top,var(--surface) 14%,transparent);pointer-events:none}.diary-page .entry.standing .note-body.reading.clamp-collapsed:after{background:linear-gradient(0deg,#FFFDFA 14%,transparent)}.diary-page .note-clamp{display:flex;justify-content:center;padding:0 16px 14px;margin-top:-4px}.diary-page .clamp-btn{border:1px solid var(--border);background:var(--surface);color:var(--primary-deep);border-radius:var(--r-full);padding:7px 16px;font-size:13px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:.15s}.diary-page .clamp-btn:hover{border-color:var(--primary);background:var(--primary-tint)}.diary-page .clamp-btn svg{transition:transform .2s}.diary-page .entry.expanded .clamp-btn svg{transform:rotate(180deg)}.diary-page .entry.standing .entry-card{background:linear-gradient(180deg,#FFFDFA,#FFFFFF);border-color:#EFE2D5}.diary-page .entry.standing .entry-card:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:4px;background:linear-gradient(180deg,var(--accent),#d7a07e)}.diary-page .pin{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:16px;line-height:1.2;white-space:nowrap}.diary-page .pin svg{color:var(--accent)}.diary-page .entry-editor .rte{border:none;border-radius:0;background:var(--surface)}.diary-page .entry-editor .rte:focus-within{box-shadow:none}.diary-page .entry-editor .rte-area{min-height:84px}.diary-page .entry-editor .rte-toolbar.sticky{top:56px;background:var(--surface-2)}.diary-page .entry-foot{display:flex;align-items:center;gap:8px;padding:10px 14px;border-top:1px solid var(--border);background:var(--surface-2)}.diary-page .entry-foot .saved-flag{font-size:12px;color:var(--text-faint);display:flex;align-items:center;gap:5px}.diary-page .entry-foot .grow{flex:1 1}.diary-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:60px 24px;animation:rise .5s ease both}.diary-empty .orb{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;margin-bottom:20px;background:radial-gradient(circle at 35% 30%,var(--primary-soft),#fff);box-shadow:var(--sh-sm)}.diary-empty h2{font-size:22px;margin-bottom:8px}.diary-empty p{color:var(--text-muted);font-size:15px;max-width:380px;line-height:1.6;margin-bottom:22px}.diary-page .toast-host{position:fixed;inset-block-end:24px;inset-inline:0;display:flex;justify-content:center;z-index:80;pointer-events:none}.diary-page .toast{display:none;align-items:center;gap:10px;background:var(--text);color:#fff;padding:12px 18px;border-radius:var(--r-full);box-shadow:var(--sh-lg);font-size:14px;pointer-events:auto;animation:none;max-width:90vw}.diary-page .toast.show{display:flex;animation:toastIn .3s ease both}.diary-page .toast .ok{width:20px;height:20px;border-radius:50%;background:var(--primary);display:grid;place-items:center;flex:none}@media (min-width:680px){.diary-page .patient-id .meta h1{font-size:28px}}