:root{--bg:#faf6ef;--bg-tint:#f3ecdf;--surface:#fff;--surface-2:#fbf7f0;--surface-3:#f0e8d8;--border:#e6dcc8;--border-strong:#d9ccb0;--border-soft:#efe6d3;--ink:#1c2434;--ink-2:#3d4658;--ink-3:#6b6f7c;--ink-4:#9a9683;--on-dark:#f8f3e7;--primary:#1f2a44;--primary-hover:#2a3a5d;--primary-soft:#e7e9f1;--accent:#b3614a;--accent-soft:#f0d9cd;--accent-deep:#8a4530;--ok:#3b6b56;--ok-soft:#d6e3da;--warn:#b78338;--warn-soft:#f0e1c3;--danger:#8a3a3a;--danger-soft:#ecd2d2;--done:#6b6f7c;--done-soft:#e3e2dd;--doc-1:#c9a35e;--doc-1-soft:#f1e3c2;--doc-2:#6a839d;--doc-2-soft:#d6dfe9;--doc-3:#7c9879;--doc-3-soft:#dde7d8;--doc-4:#b3614a;--doc-4-soft:#f0d9cd;--doc-5:#8a6b9b;--doc-5-soft:#e1d6e8;--serif:"Instrument Serif", "Newsreader", Georgia, serif;--sans:"DM Sans", "Söhne", system-ui, -apple-system, sans-serif;--mono:"JetBrains Mono", ui-monospace, monospace;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-7:32px;--s-8:40px;--s-9:56px;--r-1:4px;--r-2:6px;--r-3:10px;--r-4:14px;--r-5:20px;--r-full:999px;--shadow-1:0 1px 0 #1c24340a, 0 1px 2px #1c24340a;--shadow-2:0 2px 6px #1c24340f, 0 1px 2px #1c24340a;--shadow-3:0 8px 24px #1c24341a, 0 2px 6px #1c24340d;--shadow-4:0 24px 48px #1c24342e, 0 6px 16px #1c243414;--row-h:14px;--col-min-w:240px}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;font-size:14px;line-height:1.45}h1,h2,h3,h4{letter-spacing:-.01em;color:var(--ink);margin:0;font-weight:500}.serif{font-family:var(--serif);letter-spacing:-.005em;font-weight:400}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.num{font-variant-numeric:tabular-nums}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}input,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border:2px solid var(--bg);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.app{background:var(--bg);grid-template-columns:232px 1fr;height:100vh;display:grid;overflow:hidden}.app.collapsed{grid-template-columns:64px 1fr}.sidebar{background:var(--bg);border-right:1px solid var(--border-soft);flex-direction:column;gap:4px;padding:18px 14px 14px;display:flex;position:relative}.sidebar .brand{font-family:var(--serif);letter-spacing:-.02em;color:var(--ink);align-items:center;gap:10px;padding:4px 8px 22px;font-size:28px;line-height:1;display:flex}.sidebar .brand .dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 3px var(--accent-soft);border-radius:50%}.sidebar .group-label{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-4);padding:14px 10px 6px;font-size:11px;font-weight:500}.nav-item{border-radius:var(--r-2);color:var(--ink-2);cursor:pointer;text-align:left;align-items:center;gap:10px;padding:8px 10px;font-size:13.5px;font-weight:500;transition:background .12s,color .12s;display:flex;position:relative}.nav-item:hover{background:var(--surface-3);color:var(--ink)}.nav-item.active{background:var(--ink);color:var(--on-dark)}.nav-item.active .badge{color:var(--on-dark);background:#ffffff2e}.nav-item .ic{flex-shrink:0;width:16px;height:16px}.nav-item>svg{flex-shrink:0}.nav-item .badge{background:var(--surface-3);color:var(--ink-3);border-radius:var(--r-full);margin-left:auto;padding:1px 6px;font-size:11px;font-weight:600}.sidebar .footer{border-top:1px solid var(--border-soft);border-radius:var(--r-3);cursor:pointer;text-align:left;align-items:center;gap:10px;width:100%;margin-top:0;padding:10px;transition:background .14s;display:flex}.sidebar .footer:hover,.sidebar .footer.open{background:var(--surface-3);border-top-color:#0000}.user-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-3);z-index:40;padding:6px 0;animation:.14s ease-out user-menu-in;position:absolute;bottom:calc(100% + 6px);left:0;right:0;box-shadow:0 12px 32px -8px #1410082e,0 2px 6px #1410080f}@keyframes user-menu-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.user-menu-sep{background:var(--border-soft);height:1px;margin:6px 8px}.user-menu-item{border-radius:var(--r-2);width:calc(100% - 12px);color:var(--ink-2);text-align:left;cursor:pointer;align-items:center;gap:10px;margin:0 6px;padding:8px 10px;font-size:13px;transition:background .12s,color .12s;display:flex}.user-menu-item:hover{background:var(--surface-3);color:var(--ink)}.user-menu-item.danger{color:#b14545}.user-menu-item.danger:hover{background:color-mix(in oklab, #b14545 10%, var(--surface-3));color:#8e2f2f}.user-menu-item kbd{font-size:10.5px}.avatar{width:28px;height:28px;color:var(--on-dark);background:var(--ink);border:2px solid var(--surface);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:inline-flex}.topbar{background:var(--bg);border-bottom:1px solid var(--border-soft);align-items:center;gap:12px;min-height:64px;padding:14px 20px;display:flex}.topbar .breadcrumb{color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;font-size:12.5px}.topbar h1{font-family:var(--serif);font-size:24px;font-weight:400;line-height:1.1}.topbar .spacer{flex:1}.main{flex-direction:column;min-width:0;height:100vh;display:flex;overflow:hidden}.workspace{flex:1;position:relative;overflow:auto}.btn{border-radius:var(--r-2);border:1px solid var(--border);background:var(--surface);color:var(--ink);white-space:nowrap;align-items:center;gap:6px;height:32px;padding:7px 12px;font-size:13px;font-weight:500;transition:all .12s;display:inline-flex}.btn:hover{border-color:var(--border-strong);background:var(--surface-2)}.btn.primary{background:var(--ink);color:var(--on-dark);border-color:var(--ink)}.btn.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn.accent{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.accent:hover{background:var(--accent-deep);border-color:var(--accent-deep)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-3)}.btn.icon{justify-content:center;min-width:32px;padding:7px}.btn.lg{height:40px;padding:0 16px;font-size:14px}.input{border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);width:100%;height:32px;padding:0 10px;font-size:13px;transition:border-color .12s}.input:focus{border-color:var(--ink);outline:none}.input.lg{height:40px;padding:0 14px;font-size:14px}.field-label{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin-bottom:6px;font-size:11px;font-weight:500;display:block}@keyframes skeleton-pulse{0%,to{opacity:.55}50%{opacity:.85}}.skeleton{background:linear-gradient(90deg, var(--surface-2) 0%, var(--surface-3) 50%, var(--surface-2) 100%);border-radius:var(--r-2);background-size:200% 100%;animation:1.4s ease-in-out infinite skeleton-pulse;display:inline-block}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spinner-rotate;display:inline-block}.spinner.spinner-inline{vertical-align:middle;border-width:1.5px;width:14px;height:14px}.loading-state{flex-direction:column;justify-content:center;align-items:center;min-height:200px;padding:60px 20px;display:flex}.error-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;max-width:420px;margin:0 auto;padding:40px 20px;display:flex}.error-state-icon{background:var(--danger-soft);width:56px;height:56px;color:var(--danger);border-radius:50%;justify-content:center;align-items:center;margin-bottom:14px;display:inline-flex}.error-state-title{font-family:var(--serif);margin:0 0 6px;font-size:22px;font-weight:400}.error-state-message{color:var(--ink-3);margin:0 0 16px;font-size:13px;line-height:1.5}.switch{cursor:pointer;flex-shrink:0;width:32px;height:18px;display:inline-block;position:relative}.switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.switch-track{background:var(--border-strong);pointer-events:none;border-radius:999px;transition:background .14s;position:absolute;inset:0}.switch-thumb{background:#fff;border-radius:50%;width:14px;height:14px;transition:left .14s;position:absolute;top:2px;left:2px}.switch input:checked~.switch-track{background:var(--ok)}.switch input:checked~.switch-track .switch-thumb{left:16px}.switch input:disabled~.switch-track{opacity:.5;cursor:not-allowed}.switch-row{border-bottom:1px solid var(--border-soft);align-items:center;gap:10px;padding:10px 0;display:flex}.switch-row-label{flex:1;font-size:13px}.switch-row:last-child{border-bottom:0}.chip{border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface);color:var(--ink-3);cursor:pointer;opacity:.6;white-space:nowrap;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:500;line-height:1.4;transition:color .12s,background .12s,border-color .12s,opacity .12s;display:inline-flex}.chip:hover{color:var(--ink)}.chip.active{opacity:1;color:var(--on-dark);background:var(--ink);border-color:var(--ink)}.chip-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.pill{border-radius:var(--r-full);letter-spacing:.02em;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;line-height:1.4;display:inline-flex}.pill .dot{opacity:.9;background:currentColor;border-radius:50%;width:5px;height:5px}.pill.ok{color:var(--ok);background:var(--ok-soft)}.pill.warn{color:var(--warn);background:var(--warn-soft)}.pill.danger{color:var(--danger);background:var(--danger-soft)}.pill.done{color:var(--done);background:var(--done-soft)}.pill.neutral{color:var(--ink-3);background:var(--surface-3)}.card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--r-3);padding:18px}.cal-toolbar{background:var(--bg);border-bottom:1px solid var(--border-soft);align-items:center;gap:8px;padding:10px 20px;display:flex}.cal-toolbar .date-block{align-items:baseline;gap:8px;display:flex}.cal-toolbar .date-num{font-family:var(--serif);color:var(--ink);font-size:26px;line-height:1}.cal-toolbar .date-rest{color:var(--ink-3);font-size:13px}.seg{border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);padding:2px;display:inline-flex}.seg button{color:var(--ink-3);border-radius:var(--r-1);padding:4px 10px;font-size:12.5px;font-weight:500}.seg button.active{background:var(--ink);color:var(--on-dark)}.seg button:not(.active):hover{color:var(--ink)}.cal-day{background:var(--surface);grid-template-rows:auto 1fr;height:100%;display:grid}.cal-headers{z-index:5;background:var(--bg);border-bottom:1px solid var(--border);grid-template-columns:56px 1fr;display:grid;position:sticky;top:0}.cal-headers .gutter{border-right:1px solid var(--border-soft)}.cal-doc-headers{grid-auto-flow:column;grid-auto-columns:minmax(var(--col-min-w), 1fr);display:grid}.cal-doc-head{border-right:1px solid var(--border-soft);background:var(--bg);align-items:center;gap:10px;padding:12px 14px;display:flex}.cal-doc-head .doc-name{color:var(--ink);font-size:13px;font-weight:600}.cal-doc-head .doc-role{color:var(--ink-3);font-size:11.5px}.cal-body{grid-template-columns:56px 1fr;display:grid;position:relative}.time-gutter{border-right:1px solid var(--border-soft);background:var(--bg);position:relative}.time-label{color:var(--ink-3);text-align:right;font-variant-numeric:tabular-nums;padding-right:8px;font-size:10.5px;font-weight:500;position:absolute;right:0;transform:translateY(-7px)}.cal-cols{grid-auto-flow:column;grid-auto-columns:minmax(var(--col-min-w), 1fr);display:grid;position:relative}.cal-col{border-right:1px solid var(--border-soft);background:var(--surface);position:relative}.cal-col:nth-child(2n){background:var(--surface-2)}.cal-row{border-bottom:1px dashed var(--border-soft);position:relative}.cal-row.hour-mark{border-bottom-style:solid;border-color:var(--border)}.appt{border-radius:var(--r-2);cursor:grab;background:var(--surface);-webkit-user-select:none;user-select:none;border:1px solid #0000;flex-direction:column;gap:2px;padding:7px 9px;font-size:12px;transition:box-shadow .12s,transform .12s;display:flex;position:absolute;left:4px;right:4px;overflow:hidden}.appt:hover{box-shadow:var(--shadow-2);z-index:3}.appt.dragging{box-shadow:var(--shadow-3);opacity:.85;cursor:grabbing;z-index:10;transform:scale(1.02)}.appt .a-time{opacity:.7;font-variant-numeric:tabular-nums;font-size:10.5px;font-weight:600}.appt .a-name{color:var(--ink);font-size:12.5px;font-weight:600;line-height:1.2}.appt .a-treat{opacity:.75;font-size:11px;line-height:1.2}.appt .a-status{border-radius:50%;width:6px;height:6px;position:absolute;top:6px;right:6px}.appt .resize-handle{cursor:ns-resize;height:6px;position:absolute;bottom:0;left:0;right:0}.appt.s-ok{background:color-mix(in oklab, var(--ok-soft) 70%, white);border-color:color-mix(in oklab, var(--ok) 25%, transparent)}.appt.s-warn{background:color-mix(in oklab, var(--warn-soft) 70%, white);border-color:color-mix(in oklab, var(--warn) 25%, transparent)}.appt.s-danger{background:color-mix(in oklab, var(--danger-soft) 70%, white);border-color:color-mix(in oklab, var(--danger) 30%, transparent)}.appt.s-done{background:color-mix(in oklab, var(--done-soft) 60%, white);border-color:var(--border);color:var(--ink-3)}.appt.s-done .a-name{color:var(--ink-3);text-decoration:line-through;-webkit-text-decoration-color:var(--ink-4);text-decoration-color:var(--ink-4)}.appt.s-canceled{background:var(--surface-2);border-color:var(--border-soft);opacity:.55}.appt.s-canceled .a-name{color:var(--ink-3);text-decoration:line-through;-webkit-text-decoration-color:var(--ink-4);text-decoration-color:var(--ink-4)}.appt.s-canceled .a-time,.appt.s-canceled .a-treat{color:var(--ink-4)}.appt.s-canceled .doc-stripe{opacity:.4}.appt .doc-stripe{background:var(--doc-1);width:3px;position:absolute;top:0;bottom:0;left:0}.now-line{border-top:1.5px solid var(--accent);z-index:4;pointer-events:none;position:absolute;left:0;right:0}.now-line:before{content:"";background:var(--accent);border-radius:50%;width:7px;height:7px;position:absolute;top:-4px;left:-4px}.drop-hint{background:color-mix(in oklab, var(--accent-soft) 70%, transparent);border:1.5px dashed var(--accent);border-radius:var(--r-2);pointer-events:none;z-index:2;position:absolute;left:4px;right:4px}@keyframes modalIn{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#1c243459;justify-content:center;align-items:center;padding:24px;animation:.16s ease-out backdropIn;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--r-4);width:520px;max-width:100%;max-height:90vh;box-shadow:var(--shadow-4);border:1px solid var(--border-soft);animation:.22s cubic-bezier(.22,1,.36,1) modalIn;overflow:auto}.modal-head{justify-content:space-between;align-items:flex-start;padding:20px 24px 12px;display:flex}.modal-head h2{font-family:var(--serif);font-size:22px;font-weight:400}.modal-body{padding:8px 24px 16px}.modal-foot{border-top:1px solid var(--border-soft);background:var(--surface-2);border-radius:0 0 var(--r-4) var(--r-4);justify-content:flex-end;gap:8px;padding:14px 24px;display:flex}.tabs{border-bottom:1px solid var(--border-soft);gap:4px;display:flex}.tab{color:var(--ink-3);cursor:pointer;white-space:nowrap;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-size:13px;font-weight:500;line-height:1.2}.tab:hover{color:var(--ink)}.tab.active{color:var(--ink);border-bottom-color:var(--ink)}.login-wrap{background:var(--bg);grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.login-side{background:var(--ink);color:var(--on-dark);flex-direction:column;justify-content:space-between;padding:48px;display:flex;position:relative;overflow:hidden}.login-form{justify-content:center;align-items:center;padding:48px;display:flex}.login-form .form-card{width:100%;max-width:360px}.device-stage{background:var(--bg-tint);flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:32px;min-height:100%;padding:40px;display:flex}.row{align-items:center;gap:8px;display:flex}.col{flex-direction:column;gap:8px;display:flex}.grow{flex:1}.divider{background:var(--border-soft);height:1px;margin:12px 0}.muted{color:var(--ink-3)}.small{font-size:12px}.tiny{font-size:11px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.pulse{animation:2s ease-in-out infinite pulse}.toast-stack{z-index:200;pointer-events:none;flex-direction:column-reverse;gap:10px;display:flex;position:fixed;bottom:24px;right:24px}@keyframes toastIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes toastOut{0%{opacity:1;max-height:80px;margin-bottom:0;transform:translate(0)}to{opacity:0;max-height:0;margin-bottom:-10px;transform:translate(20px)}}.toast{background:var(--ink);color:var(--on-dark);border-radius:var(--r-3);box-shadow:var(--shadow-3);pointer-events:all;align-items:center;gap:12px;min-width:280px;max-width:380px;padding:12px 16px;font-size:13px;line-height:1.4;animation:.22s cubic-bezier(.22,1,.36,1) toastIn;display:flex}.toast.leaving{animation:.2s ease-in forwards toastOut}.toast.ok{border-left:3px solid var(--ok);background:#1f3a30}.toast.danger{border-left:3px solid var(--danger);background:#4a1f1f}.toast.warn{border-left:3px solid var(--warn);background:#4a3a1f}.toast .ic{color:var(--accent);flex-shrink:0}.toast.ok .ic{color:#7cc09b}.toast.danger .ic{color:#e89c9c}.toast.warn .ic{color:#e8c47c}.toast .body{flex:1}.toast .title{font-weight:600}.toast .sub{opacity:.7;margin-top:1px;font-size:12px}.toast .close{opacity:.5;transition:opacity .12s}.toast .close:hover{opacity:1}.toast .action{color:var(--accent);border-radius:4px;margin:-4px -8px -4px 0;padding:4px 8px;font-weight:600}.toast .action:hover{background:#ffffff14}[data-tip]{position:relative}[data-tip]:after{content:attr(data-tip);background:var(--ink);color:var(--on-dark);white-space:nowrap;opacity:0;pointer-events:none;z-index:50;letter-spacing:0;text-transform:none;border-radius:5px;padding:5px 9px;font-size:11px;font-weight:500;transition:opacity .14s,transform .14s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)translateY(4px)}[data-tip]:before{content:"";border:4px solid #0000;border-top-color:var(--ink);opacity:0;pointer-events:none;z-index:50;transition:opacity .14s,transform .14s;position:absolute;bottom:calc(100% + 1px);left:50%;transform:translate(-50%)translateY(4px)}[data-tip]:hover:after,[data-tip]:hover:before{opacity:1;transition-delay:.2s;transform:translate(-50%)translateY(0)}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--r-3);background:var(--surface-2);text-align:center;cursor:pointer;padding:32px 20px;transition:all .14s}.dropzone:hover{border-color:var(--accent);background:color-mix(in oklab, var(--accent-soft) 25%, var(--surface-2))}.dropzone.over{border-color:var(--accent);background:color-mix(in oklab, var(--accent-soft) 40%, var(--surface-2));transform:scale(1.005)}.dropzone .ic-circle{background:var(--surface);border:1px solid var(--border);width:48px;height:48px;color:var(--ink-2);border-radius:50%;justify-content:center;align-items:center;margin-bottom:10px;transition:transform .2s;display:inline-flex}.dropzone:hover .ic-circle{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.input.invalid{border-color:var(--danger)}.input.valid{border-color:color-mix(in oklab, var(--ok) 60%, var(--border))}.field-hint{color:var(--ink-3);align-items:center;gap:4px;margin-top:4px;font-size:11.5px;display:flex}.field-hint.error{color:var(--danger)}.field-hint.success{color:var(--ok)}.input-affix{position:relative}.input-affix .input{padding-left:32px}.input-affix .affix{color:var(--ink-3);pointer-events:none;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.input-affix .input.lg+.affix,.input-affix .affix.lg{left:12px}kbd{font-family:var(--mono);background:var(--surface);border:1px solid var(--border);color:var(--ink-2);border-bottom-width:2px;border-radius:4px;padding:1px 6px;font-size:10.5px;font-weight:600;line-height:1.4}.btn.primary:active,.btn.accent:active{transform:scale(.97)}.cmdk-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:150;background:#1c243480;justify-content:center;padding-top:12vh;animation:.16s ease-out backdropIn;display:flex;position:fixed;inset:0}.cmdk-panel{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--r-4);width:600px;max-width:calc(100% - 32px);height:fit-content;max-height:60vh;box-shadow:var(--shadow-4);flex-direction:column;animation:.22s cubic-bezier(.22,1,.36,1) modalIn;display:flex;overflow:hidden}.cmdk-input{font-size:16px;font-family:var(--serif);width:100%;color:var(--ink);border:0;border-bottom:1px solid var(--border-soft);background:0 0;outline:none;padding:18px 20px}.cmdk-input::placeholder{color:var(--ink-4)}.cmdk-results{flex:1;padding:8px;overflow:auto}.cmdk-group-label{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-4);padding:10px 12px 4px;font-size:10.5px;font-weight:600}.cmdk-item{border-radius:var(--r-2);cursor:pointer;text-align:left;align-items:center;gap:12px;width:100%;padding:10px 12px;display:flex}.cmdk-item.selected,.cmdk-item:hover{background:var(--surface-2)}.cmdk-item .ic-tile{background:var(--surface-3);width:28px;height:28px;color:var(--ink-2);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.cmdk-item .body{flex:1;min-width:0}.cmdk-item .body .title{color:var(--ink);font-size:13.5px;font-weight:500}.cmdk-item .body .sub{color:var(--ink-3);font-size:11.5px}.cmdk-item .hint{color:var(--ink-4);gap:4px;font-size:11px;display:flex}.cmdk-footer{border-top:1px solid var(--border-soft);background:var(--surface-2);color:var(--ink-3);align-items:center;gap:14px;padding:8px 14px;font-size:11px;display:flex}.calendar-connections li{align-items:center;gap:10px;padding:8px 0;display:flex}.extraction-form .hint.err{color:var(--err,oklch(55% .22 25));font-size:11px}.calibration-screen .row,.review-queue .row{gap:8px;margin-top:12px;display:flex}.progress-bar{background:var(--surface-2);border-radius:4px;width:100%;height:8px;margin:12px 0;overflow:hidden}.progress-fill{background:var(--accent);height:100%;transition:width .6s}.inline-spinner{vertical-align:-2px;border:2px solid;border-right-color:#0000;border-radius:50%;width:12px;height:12px;margin-right:6px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.dots-spinner{align-items:center;gap:6px;margin:8px 0;display:inline-flex}.dots-spinner span{background:var(--accent);border-radius:50%;width:10px;height:10px;animation:1.2s ease-in-out infinite dots-bounce}.dots-spinner span:nth-child(2){animation-delay:.15s}.dots-spinner span:nth-child(3){animation-delay:.3s}@keyframes dots-bounce{0%,80%,to{opacity:.4;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}.import-stepper{align-items:center;gap:8px;margin:0 0 24px;padding:0;list-style:none;display:flex}.import-stepper .step{flex:1;align-items:center;gap:10px;display:flex;position:relative}.import-stepper .step-circle{background:var(--surface-2);width:32px;height:32px;color:var(--ink-3);border:2px solid var(--border);border-radius:50%;flex:0 0 32px;place-items:center;font-size:14px;font-weight:600;transition:all .2s;display:grid}.import-stepper .step.done .step-circle{background:var(--ok);color:#fff;border-color:var(--ok)}.import-stepper .step.active .step-circle{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);animation:2s ease-in-out infinite pulse-accent}@keyframes pulse-accent{0%,to{box-shadow:0 0 0 4px var(--accent-soft)}50%{box-shadow:0 0 0 8px var(--accent-soft)}}.import-stepper .step-label{flex-direction:column;min-width:0;line-height:1.2;display:flex}.import-stepper .step-label strong{color:var(--ink);font-size:14px}.import-stepper .step.todo .step-label strong{color:var(--ink-3)}.import-stepper .step-desc{color:var(--ink-3);font-size:11px}.import-stepper .step-connector{background:var(--border);border-radius:1px;flex:1;height:2px;margin:0 4px}.import-stepper .step.done .step-connector{background:var(--ok)}.field-status{vertical-align:-2px;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;margin-left:6px;font-size:11px;font-weight:700;display:inline-flex}.fs-ok{background:var(--ok-soft);color:var(--ok)}.fs-warn{background:var(--warn-soft);color:var(--warn)}.fs-err{background:var(--danger-soft);color:var(--danger)}.fs-missing{background:var(--border);color:var(--ink-3)}.fs-neutral{color:var(--ink-4);background:0 0}.extraction-form .grid-2{grid-template-columns:1fr 1fr;gap:14px;margin:14px 0;display:grid}.extraction-form .span-2{grid-column:span 2}.extraction-form label{color:var(--ink-2);flex-direction:column;gap:4px;font-size:12px;display:flex}.extraction-form .ef-label{color:var(--ink-2);text-transform:none;align-items:center;font-size:12px;font-weight:500;display:flex}.extraction-form .ef-required{color:var(--danger);margin-left:2px}.extraction-form .input.warn{border-color:var(--warn);background:color-mix(in oklch, var(--warn-soft) 50%, white)}.extraction-form .input.err{border-color:var(--danger);background:color-mix(in oklch, var(--danger-soft) 50%, white)}.extraction-form .input.missing{border-color:var(--border-strong);background:var(--surface-2);border-style:dashed}.extraction-form .ef-hint{margin-top:2px;font-size:11px}.extraction-form .ef-hint-warn{color:var(--warn)}.extraction-form .ef-hint-err{color:var(--danger)}.extraction-form .ef-hint-missing{color:var(--ink-3)}.extraction-form .first-visit-row{flex-direction:row;align-items:center;gap:8px;margin-top:4px}.extraction-form textarea{border:1px solid var(--border);background:var(--surface);color:var(--ink);resize:vertical;border-radius:6px;min-height:60px;padding:8px 10px;font-family:inherit}.importing-screen{max-width:720px;margin:0 auto}.importing-card{background:var(--surface);border:1px solid var(--border-soft);text-align:center;border-radius:12px;padding:40px 32px;box-shadow:0 1px 3px oklch(0% 0 0/.04)}.importing-title{font-family:var(--serif,"Source Serif Pro", serif);color:var(--ink);margin:16px 0 8px;font-size:24px;font-weight:400}.importing-sub{color:var(--ink-2);max-width:480px;margin:0 auto 20px;line-height:1.5}.importing-coldstart{background:var(--warn-soft);border-left:3px solid var(--warn);text-align:left;color:var(--ink-2);border-radius:6px;max-width:520px;margin:16px auto;padding:14px 18px;font-size:14px;line-height:1.5}.importing-error{background:var(--danger-soft);color:var(--danger);text-align:left;border-radius:6px;max-width:520px;margin:16px auto;padding:12px 16px}.importing-stuck{background:var(--surface-2);border:1px dashed var(--border-strong);max-width:520px;color:var(--ink-2);border-radius:6px;margin:16px auto;padding:12px 16px;font-size:14px}.importing-elapsed{font-variant-numeric:tabular-nums;color:var(--ink-3);margin-top:12px;font-size:12px}.bulk-progress{background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;max-width:720px;margin:0 auto;padding:32px}.bulk-progress h2{font-family:var(--serif,serif);margin:0 0 8px;font-size:24px;font-weight:400}.bulk-progress-sub{color:var(--ink-2);margin:0 0 20px;line-height:1.5}.bulk-progress-bar{background:var(--surface-2);border-radius:5px;width:100%;height:10px;margin:16px 0 8px;overflow:hidden}.bulk-progress-fill{background:var(--accent);border-radius:5px;height:100%;transition:width .4s}.bulk-progress-count{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink-3);margin-bottom:24px;font-size:13px}.bulk-progress-stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:24px;display:grid}.stat-item{background:var(--surface-2);text-align:center;border-radius:8px;padding:14px}.stat-item.ok{background:var(--ok-soft)}.stat-item.warn{background:var(--warn-soft)}.stat-item.err{background:var(--danger-soft)}.stat-item .stat-num{color:var(--ink);font-size:28px;font-weight:600;display:block}.stat-item .stat-label{color:var(--ink-2);margin-top:2px;font-size:12px;display:block}.bulk-progress-actions{justify-content:flex-end;gap:12px;display:flex}.btn.big{padding:12px 24px;font-size:15px;font-weight:600}.import-summary{max-width:800px;margin:0 auto}.import-summary-hero{background:var(--surface);border:1px solid var(--border-soft);text-align:center;border-radius:12px;margin-bottom:24px;padding:40px 32px}.import-summary-hero.ok{border-top:4px solid var(--ok)}.import-summary-hero.err{border-top:4px solid var(--danger)}.import-summary-icon{margin-bottom:16px;font-size:64px;line-height:1}.import-summary-hero.ok .import-summary-icon{color:var(--ok)}.import-summary-hero h1{font-family:var(--serif,serif);margin:0 0 8px;font-size:32px;font-weight:400}.import-summary-stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:24px;display:grid}.summary-stat{background:var(--surface);border:1px solid var(--border-soft);text-align:center;border-radius:10px;padding:20px}.summary-stat.ok{border-color:var(--ok);background:var(--ok-soft)}.summary-stat.warn{border-color:var(--warn);background:var(--warn-soft)}.summary-stat.err{border-color:var(--danger);background:var(--danger-soft)}.summary-num{color:var(--ink);font-size:40px;font-weight:600;line-height:1}.summary-label{color:var(--ink);margin-top:8px;font-size:13px;font-weight:500}.summary-desc{color:var(--ink-3);margin-top:2px;font-size:11px}.import-summary-actions{justify-content:center;gap:12px;margin-bottom:24px;display:flex}.import-summary-hint{background:var(--surface-2);color:var(--ink-2);border-radius:8px;padding:14px 18px;font-size:14px;line-height:1.5}.calibration-screen{max-width:880px;margin:0 auto}.calibration-header{background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;margin-bottom:20px;padding:24px 28px}.calibration-header h1{font-family:var(--serif,serif);margin:0 0 6px;font-size:22px;font-weight:400}.calibration-intro{color:var(--ink-2);margin:0 0 16px;line-height:1.5}.calibration-progress-bar{background:var(--surface-2);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex}.cpb-stats{color:var(--ink-2);font-size:14px}.cpb-num{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:700}.cpb-segments{gap:6px;display:flex}.cpb-seg{background:var(--border);border-radius:4px;width:32px;height:8px;transition:background .2s}.cpb-seg.cpb-approved{background:var(--ok)}.cpb-seg.cpb-edited{background:var(--warn)}.cpb-seg.cpb-rejected{background:var(--ink-4)}.cpb-seg.cpb-pending{background:var(--border-strong)}.calibration-cards{flex-direction:column;gap:16px;margin-bottom:24px;display:flex}.calib-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;padding:22px 24px;transition:all .2s}.calib-card.calib-pending{border-left:4px solid var(--accent)}.calib-card.calib-approved{border-left:4px solid var(--ok);background:color-mix(in oklch, var(--ok-soft) 30%, white)}.calib-card.calib-edited{border-left:4px solid var(--warn);background:color-mix(in oklch, var(--warn-soft) 30%, white)}.calib-card.calib-rejected{border-left:4px solid var(--ink-4);opacity:.6}.calib-card-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.calib-card-num{color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:600}.calib-card-badge{border-radius:12px;padding:4px 12px;font-size:12px;font-weight:600}.calib-badge-approved{background:var(--ok);color:#fff}.calib-badge-edited{background:var(--warn);color:#fff}.calib-badge-rejected{background:var(--ink-4);color:#fff}.calib-source{background:var(--surface-2);border-radius:8px;margin-bottom:16px;padding:12px 14px}.calib-source-label{color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:11px;font-weight:600}.calib-source-text{white-space:pre-wrap;color:var(--ink);background:0 0;border:none;margin:0;padding:0;font-family:ui-monospace,Menlo,monospace;font-size:13px}.calib-extracted{margin-bottom:16px}.calib-extracted-label{color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:11px;font-weight:600;display:flex}.calib-edit-toggle{color:var(--accent);cursor:pointer;text-transform:none;letter-spacing:0;background:0 0;border:none;padding:0;font-size:12px;font-weight:500}.calib-edit-toggle:hover{text-decoration:underline}.calib-fields{grid-template-columns:repeat(2,1fr);gap:6px 14px;margin:0;display:grid}.calib-field-row{border-bottom:1px dashed var(--border-soft);align-items:baseline;gap:8px;padding:4px 0;display:flex}.calib-field-row dt{color:var(--ink-3);flex:0 0 110px;font-size:12px}.calib-field-row dd{color:var(--ink);flex:1;margin:0;font-size:13px}.calib-field-row .muted-val{color:var(--ink-4);font-style:italic}.calib-card-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px;display:flex}.calib-btn-approve{min-width:200px}.calib-link-btn{color:var(--ink-3);cursor:pointer;background:0 0;border:none;padding:6px 8px;font-size:13px;text-decoration:underline}.calib-link-btn:hover{color:var(--ink)}.calib-skip-link{color:var(--ink-4)}.calibration-finish{background:var(--surface);text-align:center;border-radius:12px;padding:24px;transition:all .3s}.calibration-finish.ready{background:color-mix(in oklch, var(--ok-soft) 40%, white);border:1px solid var(--ok)}.calibration-finish.blocked{background:var(--surface-2);border:1px dashed var(--border-strong)}.finish-headline{margin-bottom:12px;font-size:16px;font-weight:600}.calibration-finish.ready .finish-headline{color:var(--ok)}.blocked-headline{color:var(--warn)}.finish-hint{color:var(--ink-3);margin:12px 0 0;font-size:13px}.review-screen{max-width:880px;margin:0 auto}.review-header{background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;margin-bottom:20px;padding:24px 28px}.review-header h1{font-family:var(--serif,serif);margin:0 0 6px;font-size:22px;font-weight:400}.review-intro{color:var(--ink-2);margin:0;line-height:1.5}.review-cards{flex-direction:column;gap:16px;display:flex}.review-card{background:var(--surface);border:1px solid var(--border-soft);border-left:4px solid var(--warn);border-radius:12px;padding:22px 24px}.review-source{background:var(--surface-2);border-radius:8px;margin:12px 0;padding:12px 14px}.review-source-label{color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:11px;font-weight:600}.review-source-text{white-space:pre-wrap;color:var(--ink);background:0 0;border:none;margin:0;padding:0;font-family:ui-monospace,Menlo,monospace;font-size:13px}.review-card-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px;display:flex}.flag-explainer{background:var(--warn-soft);border-radius:8px;margin-bottom:12px;padding:10px 14px}.flag-explainer-label{color:var(--warn);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:11px;font-weight:700;display:block}.flag-explainer ul{color:var(--ink);margin:0;padding-left:18px;font-size:13px}.flag-explainer li{line-height:1.5}.center-card{text-align:center;max-width:520px;margin:0 auto;padding:40px 32px}.center-card .empty-icon{margin-bottom:16px;font-size:56px;line-height:1}.center-card h2{font-family:var(--serif,serif);margin:8px 0;font-size:22px;font-weight:400}.center-card p{color:var(--ink-2);margin-bottom:16px;line-height:1.5}.calendar-connections{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.calendar-connections li{border-bottom:1px dashed var(--border-soft);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 0;display:flex}.calendar-connections li:last-child{border-bottom:none}.info-strip{background:var(--surface-2);border:1px solid var(--border);color:var(--ink-2);border-radius:8px;align-items:center;gap:10px;margin:12px 0;padding:10px 14px;font-size:13px;line-height:1.45;display:flex}.info-strip.warn{background:var(--warn-soft);border-color:var(--warn);color:oklch(35% .08 70)}.info-strip.danger{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.info-strip.ok{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}.info-strip>span{flex:1}.calendar-picker{padding:24px}.calendar-picker-header{margin-bottom:16px}.calendar-picker-header h2{font-family:var(--serif,serif);margin:0 0 4px;font-size:20px;font-weight:400}.calendar-picker-list{flex-direction:column;gap:6px;max-height:360px;margin:16px 0;padding:0;list-style:none;display:flex;overflow-y:auto}.calendar-picker-item{background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;width:100%;color:var(--ink);border-radius:8px;align-items:center;gap:12px;padding:12px 14px;font-family:inherit;transition:all .15s;display:flex}.calendar-picker-item:hover{background:var(--surface-2);border-color:var(--border-strong)}.calendar-picker-item.selected{background:color-mix(in oklch, var(--accent-soft) 50%, white);border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in oklch, var(--accent) 20%, transparent)}.cpi-radio{color:var(--accent);flex:0 0 18px;place-items:center;display:grid}.cpi-radio-empty{border:2px solid var(--border-strong);border-radius:50%;width:16px;height:16px;display:inline-block}.cpi-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.cpi-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.cpi-meta{flex-wrap:wrap;gap:6px;display:flex}.calendar-picker-actions{border-top:1px solid var(--border-soft);justify-content:flex-end;gap:10px;margin-top:8px;padding-top:12px;display:flex}.connection-info{flex-direction:column;gap:4px;margin:4px 0;display:flex}.connection-cal-label{color:var(--ink-3);align-items:center;gap:8px;font-size:12px;display:flex}.extraction-diff{background:var(--surface-2);border:1px solid var(--border-soft);border-radius:8px;margin-top:12px;padding:10px 14px}.extraction-diff summary{cursor:pointer;color:var(--accent-deep);align-items:center;gap:6px;font-size:12px;font-weight:600;list-style:none;display:flex}.extraction-diff summary::-webkit-details-marker{display:none}.extraction-diff ul{flex-direction:column;gap:6px;margin:0;padding:8px 0 0;list-style:none;display:flex}.extraction-diff li{flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.diff-label{color:var(--ink-2);min-width:80px;font-weight:600}.diff-before{color:var(--ink-4);background:var(--danger-soft);border-radius:4px;padding:2px 6px;font-family:ui-monospace,Menlo,monospace;text-decoration:line-through}.diff-after{color:var(--ink);background:var(--ok-soft);border-radius:4px;padding:2px 6px;font-family:ui-monospace,Menlo,monospace;font-weight:500}.review-load-more{justify-content:center;padding:20px 0;display:flex}.reset-import-row{border-top:1px dashed var(--border);background:color-mix(in oklch, var(--danger-soft) 25%, white);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:16px;margin-top:24px;padding:16px;display:flex}.reset-import-text{flex:1;min-width:0}.reset-import-text strong{color:var(--danger);align-items:center;gap:6px;font-size:13px;display:inline-flex}.reset-import-text p{margin:6px 0 0}
