:root{--bg:#f4f6fa;--surface:#fff;--surface-2:#f8fafc;--border:#e3e8ef;--border-strong:#cdd5e0;--text:#0f172a;--text-2:#52617a;--text-3:#8b97ab;--brand:#0b5cff;--brand-dark:#0846c4;--brand-soft:#e8f0ff;--green:#0f9d58;--green-soft:#e4f6ec;--amber:#b45309;--amber-soft:#fdf0dc;--red:#cf2b3f;--red-soft:#fdeaec;--purple:#6d3fd4;--purple-soft:#efe9fd;--slate-soft:#eef1f6;--radius:10px;--radius-lg:14px;--shadow:0 1px 2px #0f172a0d, 0 1px 3px #0f172a0a;--shadow-lg:0 10px 30px #0f172a1f;--sidebar-w:232px}*{box-sizing:border-box}html,body,#root{height:100%}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px}a{color:var(--brand);text-decoration:none}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:600}input,select,textarea,button{font:inherit;color:inherit}.app{min-height:100%;display:flex}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);color:#cbd5e1;background:#0f172a;flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.sidebar-brand{color:#fff;letter-spacing:-.02em;align-items:center;gap:10px;padding:18px 18px 16px;font-size:15px;font-weight:700;display:flex}.sidebar-logo{color:#fff;background:linear-gradient(135deg,#0b5cff,#4b8cff);border-radius:8px;place-items:center;width:30px;height:30px;font-size:12px;display:grid}.sidebar-brand small{color:#7c8aa3;letter-spacing:0;font-size:11px;font-weight:500;display:block}.nav{flex:1;padding:4px 10px;overflow-y:auto}.nav-section{text-transform:uppercase;letter-spacing:.08em;color:#64748b;margin:14px 0 6px;padding:0 10px;font-size:10.5px;font-weight:600}.nav a{color:#cbd5e1;border-radius:8px;align-items:center;gap:10px;margin-bottom:2px;padding:8px 10px;font-size:13.5px;font-weight:500;display:flex}.nav a:hover{color:#fff;background:#ffffff0f}.nav a.active{background:var(--brand);color:#fff}.nav a .count{background:#ffffff1f;border-radius:20px;margin-left:auto;padding:1px 6px;font-size:11px}.nav a.active .count{background:#ffffff40}.sidebar-foot{border-top:1px solid #ffffff14;padding:12px}.sidebar-user{align-items:center;gap:9px;font-size:12.5px;display:flex}.sidebar-user .name{color:#fff;font-weight:500}.sidebar-user .role{color:#7c8aa3;text-transform:capitalize;font-size:11px}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:20;align-items:center;gap:14px;padding:14px 24px;display:flex;position:sticky;top:0}.topbar h1{font-size:17px}.topbar .sub{color:var(--text-3);margin-top:1px;font-size:12.5px}.topbar .spacer{flex:1}.content{width:100%;max-width:1500px;padding:22px 24px 60px}.avatar{background:var(--brand-soft);width:28px;height:28px;color:var(--brand-dark);border-radius:50%;flex:none;place-items:center;font-size:11px;font-weight:600;display:grid}.avatar.dark{color:#fff;background:#ffffff24}.avatar.sm{width:22px;height:22px;font-size:9.5px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.card-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:14px 16px;display:flex}.card-head h3{font-size:14px}.card-head .spacer{flex:1}.card-body{padding:16px}.btn{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:500;transition:all .12s;display:inline-flex}.btn:hover{background:var(--surface-2);border-color:#b6c0cf}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-dark);border-color:var(--brand-dark)}.btn.danger{color:var(--red);background:#fff;border-color:#f1c4ca}.btn.danger:hover{background:var(--red-soft)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--slate-soft)}.btn.sm{border-radius:7px;padding:5px 10px;font-size:12.5px}.btn.block{width:100%}.field{margin-bottom:14px}.field label{color:var(--text-2);margin-bottom:5px;font-size:12.5px;font-weight:500;display:block}.input,.select,.textarea{border:1px solid var(--border-strong);background:#fff;border-radius:8px;outline:none;width:100%;padding:8px 11px;transition:all .12s}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #0b5cff1f}.textarea{resize:vertical;min-height:84px}.grid-2{grid-template-columns:1fr 1fr;gap:0 14px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:0 14px;display:grid}.hint{color:var(--text-3);font-size:12px}.badge{background:var(--slate-soft);color:var(--text-2);white-space:nowrap;border-radius:20px;align-items:center;gap:5px;padding:2px 9px;font-size:11.5px;font-weight:500;display:inline-flex}.badge.blue{background:var(--brand-soft);color:var(--brand-dark)}.badge.green{background:var(--green-soft);color:var(--green)}.badge.amber{background:var(--amber-soft);color:var(--amber)}.badge.red{background:var(--red-soft);color:var(--red)}.badge.purple{background:var(--purple-soft);color:var(--purple)}.dot{background:currentColor;border-radius:50%;width:6px;height:6px}.table-wrap{overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:13.5px}table.data th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap;padding:10px 14px;font-size:11px;font-weight:600}table.data td{border-bottom:1px solid var(--border);vertical-align:middle;padding:11px 14px}table.data tbody tr:last-child td{border-bottom:none}table.data tbody tr.clickable{cursor:pointer}table.data tbody tr.clickable:hover{background:var(--surface-2)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.muted{color:var(--text-3)}.strong{font-weight:600}.mono{font-variant-numeric:tabular-nums}.ref{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:12px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:15px 16px}.stat .label{color:var(--text-3);font-size:12px;font-weight:500}.stat .value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:5px;font-size:25px;font-weight:650}.stat .foot{color:var(--text-2);margin-top:4px;font-size:12px}.board{align-items:flex-start;gap:12px;padding-bottom:12px;display:flex;overflow-x:auto}.column{border-radius:var(--radius-lg);background:#eaeef4;flex:0 0 268px;min-height:140px;padding:10px}.column.over{outline:2px dashed var(--brand);outline-offset:-2px;background:#dbe6fb}.column-head{align-items:center;gap:8px;padding:2px 4px 10px;display:flex}.column-head .title{font-size:12.5px;font-weight:600}.column-head .n{color:var(--text-3);background:#fff;border-radius:20px;padding:1px 7px;font-size:11px}.column-head .sum{color:var(--text-2);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11.5px}.kcard{border:1px solid var(--border);box-shadow:var(--shadow);cursor:grab;background:#fff;border-radius:10px;margin-bottom:8px;padding:11px 12px}.kcard:hover{border-color:var(--border-strong)}.kcard.dragging{opacity:.45}.kcard .t{font-size:13.2px;font-weight:550;line-height:1.35}.kcard .c{color:var(--text-2);margin-top:3px;font-size:12px}.kcard .m{align-items:center;gap:8px;margin-top:9px;font-size:12px;display:flex}.kcard .v{font-variant-numeric:tabular-nums;font-weight:600}.overlay{z-index:100;background:#0f172a6b;justify-content:flex-end;animation:.15s fade;display:flex;position:fixed;inset:0}.overlay.center{justify-content:center;align-items:center;padding:24px}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes slide{0%{opacity:.6;transform:translate(24px)}to{opacity:1;transform:none}}.drawer{background:var(--bg);width:min(720px,100%);height:100%;box-shadow:var(--shadow-lg);flex-direction:column;animation:.18s slide;display:flex}.drawer.wide{width:min(980px,100%)}.modal{background:var(--surface);border-radius:var(--radius-lg);width:min(560px,100%);box-shadow:var(--shadow-lg);flex-direction:column;max-height:90vh;display:flex}.modal.wide{width:min(900px,100%)}.drawer-head,.modal-head{border-bottom:1px solid var(--border);background:var(--surface);align-items:flex-start;gap:12px;padding:16px 20px;display:flex}.drawer-head h2,.modal-head h2{font-size:16px}.drawer-head .spacer,.modal-head .spacer{flex:1}.drawer-body,.modal-body{flex:1;padding:18px 20px;overflow-y:auto}.drawer-foot,.modal-foot{border-top:1px solid var(--border);background:var(--surface);justify-content:flex-end;gap:8px;padding:13px 20px;display:flex}.icon-btn{cursor:pointer;width:30px;height:30px;color:var(--text-2);background:0 0;border:none;border-radius:8px;place-items:center;font-size:17px;display:grid}.icon-btn:hover{background:var(--slate-soft)}.toolbar{flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:16px;display:flex}.toolbar .search{flex:1;min-width:200px;max-width:380px}.tabs{border-bottom:1px solid var(--border);gap:3px;margin-bottom:18px;display:flex}.tabs button{cursor:pointer;color:var(--text-2);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 13px;font-size:13.5px;font-weight:500}.tabs button.active{color:var(--brand);border-bottom-color:var(--brand)}.empty{text-align:center;color:var(--text-3);padding:44px 20px}.empty h4{color:var(--text-2);margin-bottom:5px;font-size:14px}.timeline{position:relative}.tl-item{border-bottom:1px solid var(--border);gap:11px;padding:11px 0;display:flex}.tl-item:last-child{border-bottom:none}.tl-body{flex:1;min-width:0}.tl-body .meta{color:var(--text-3);margin-top:3px;font-size:11.5px}.tl-body p{white-space:pre-wrap;margin:3px 0 0;line-height:1.5}.rows{flex-direction:column;gap:10px;display:flex}.kv{grid-template-columns:130px 1fr;gap:7px 12px;font-size:13.5px;display:grid}.kv dt{color:var(--text-3)}.kv dd{margin:0}.section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);margin:22px 0 9px;font-size:12px;font-weight:600}.stack{flex-direction:column;gap:16px;display:flex}.row{align-items:center;gap:9px;display:flex}.wrap{flex-wrap:wrap}.right{margin-left:auto}.pill-tabs{background:var(--slate-soft);border-radius:9px;gap:2px;padding:3px;display:inline-flex}.pill-tabs button{cursor:pointer;color:var(--text-2);background:0 0;border:none;border-radius:7px;padding:5px 11px;font-size:12.5px;font-weight:500}.pill-tabs button.active{color:var(--text);box-shadow:var(--shadow);background:#fff}.toast{color:#fff;z-index:300;box-shadow:var(--shadow-lg);background:#0f172a;border-radius:10px;padding:10px 18px;font-size:13px;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.toast.error{background:var(--red)}.line-table{border-collapse:collapse;width:100%;font-size:13px}.line-table th{text-transform:uppercase;color:var(--text-3);text-align:left;padding:6px 8px;font-size:11px;font-weight:600}.line-table td{border-bottom:1px solid var(--border);padding:4px 5px}.line-table input,.line-table select{background:0 0;border:1px solid #0000;border-radius:6px;width:100%;padding:6px 8px}.line-table input:hover,.line-table select:hover{border-color:var(--border)}.line-table input:focus,.line-table select:focus{border-color:var(--brand);background:#fff}.totals{width:280px;margin-left:auto;font-size:13.5px}.totals .r{justify-content:space-between;padding:6px 0;display:flex}.totals .r.grand{border-top:1px solid var(--border-strong);margin-top:5px;padding-top:9px;font-size:15px;font-weight:650}.auth-wrap{background:linear-gradient(160deg,#0f172a,#143063 70%,#0b5cff);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{background:#fff;border-radius:16px;width:min(410px,100%);padding:30px;box-shadow:0 20px 60px #0000004d}.auth-card .logo{color:#fff;background:linear-gradient(135deg,#0b5cff,#4b8cff);border-radius:12px;place-items:center;width:44px;height:44px;margin-bottom:16px;font-weight:700;display:grid}.auth-card h1{margin-bottom:5px;font-size:21px}.auth-card p.sub{color:var(--text-2);margin:0 0 22px;font-size:13.5px}.auth-err{background:var(--red-soft);color:var(--red);border-radius:8px;margin-bottom:14px;padding:9px 12px;font-size:13px}.auth-ok{background:var(--green-soft);color:var(--green);border-radius:8px;margin-bottom:14px;padding:9px 12px;font-size:13px}.auth-switch{text-align:center;color:var(--text-2);margin-top:16px;font-size:13px}.auth-switch button{color:var(--brand);cursor:pointer;background:0 0;border:none;padding:0;font-weight:500}.loading{min-height:60vh;color:var(--text-3);place-items:center;display:grid}.spinner{border:2.5px solid var(--border-strong);border-top-color:var(--brand);border-radius:50%;width:26px;height:26px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=900px){.sidebar{z-index:60;transition:all .2s;position:fixed;transform:translate(-100%)}.sidebar.open{transform:none}.app.has-sidebar .main{margin-left:0}.grid-2,.grid-3{grid-template-columns:1fr}.content{padding:16px 14px 50px}.topbar{padding:12px 14px}}.menu-toggle{display:none}@media (width<=900px){.menu-toggle{display:grid}}@media print{.sidebar,.topbar,.no-print{display:none!important}body{background:#fff}.content{padding:0}.card{box-shadow:none;border:none}}.book-wrap{background:linear-gradient(180deg, #f1f5fb 0%, #eef2f8 260px, var(--bg) 260px);min-height:100vh;padding:34px 18px 60px}.book-card{border:1px solid var(--border);background:#fff;border-radius:16px;width:min(940px,100%);margin:0 auto;padding:30px 30px 26px;box-shadow:0 14px 40px #0f172a1a}.book-logo{color:#fff;background:linear-gradient(135deg,#0b5cff,#4b8cff);border-radius:13px;place-items:center;width:46px;height:46px;margin-bottom:16px;font-size:17px;font-weight:700;display:grid}.book-card h1{margin:0 0 6px;font-size:24px}.book-card .lead{color:var(--text-2);margin:0 0 22px;font-size:14.5px;line-height:1.55}.book-section{letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);border-top:1px solid var(--border);margin:14px 0;padding-top:16px;font-size:12px;font-weight:650}.book-section:first-of-type{border-top:none;margin-top:0;padding-top:0}.book-foot{text-align:center;color:var(--text-3);margin-top:20px;font-size:12.5px}@media (width<=560px){.book-card{padding:22px 18px 20px}.book-wrap{padding:16px 12px 44px}}.sig-pad{border:1px dashed var(--border-strong);touch-action:none;cursor:crosshair;background:#fcfdff;border-radius:10px;width:100%;height:150px;display:block}.sig-foot{justify-content:space-between;align-items:center;margin-top:7px;display:flex}.btn.sm{padding:4px 11px;font-size:12.5px}.terms-box{border:1px solid var(--border);background:var(--bg);border-radius:10px;margin-bottom:18px;padding:14px 16px}.terms-box ul{color:var(--text-2);margin:10px 0 0;padding-left:20px;font-size:13px;line-height:1.6}.terms-box li{margin-bottom:6px}.file-list{margin:9px 0 0;padding:0;font-size:13px;list-style:none}.file-list li{border:1px solid var(--border);background:#fff;border-radius:8px;justify-content:space-between;gap:12px;margin-bottom:6px;padding:6px 10px;display:flex}.file-list span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.linkish{color:var(--brand);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px}.sig-image{border:1px solid var(--border);background:#fff;border-radius:10px;width:100%;max-width:320px}.ref-chip{letter-spacing:.02em;color:var(--brand);background:var(--brand-soft,#eef4ff);border:1px solid var(--border);border-radius:9px;padding:8px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:17px;font-weight:650;display:inline-block}.pc-ok{color:var(--green);margin-top:6px;font-size:12.5px}.pc-warn{color:var(--amber,#b45309);margin-top:6px;font-size:12.5px}.brand-logo{width:auto;max-width:100%;display:block}.brand-logo.on-dark{box-sizing:content-box;background:#fff;border-radius:7px;padding:5px 9px}.sidebar-brand{justify-content:flex-start}.sidebar-tag{letter-spacing:.09em;text-transform:uppercase;color:#7c8aa3;border:1px solid #33415580;border-radius:5px;padding:2px 6px;font-size:10.5px;font-weight:600}.book-logo-img{margin-bottom:16px}.auth-card .brand-logo{margin-bottom:4px}.book-card>.brand-logo{margin:0 auto 16px}.portal-loading{place-items:center;min-height:100vh;display:grid}.portal-auth-wrap{background:linear-gradient(160deg,#0f172a,#143063 70%,#0b5cff);place-items:center;min-height:100vh;padding:24px;display:grid}.portal-auth-card{background:#fff;border-radius:16px;width:min(420px,100%);padding:30px;box-shadow:0 20px 60px #0000004d}.portal-auth-card h1{margin:14px 0 5px;font-size:21px}.portal-auth-card p.sub{color:var(--text-2);margin:0 0 22px;font-size:13.5px}.portal-help{text-align:center;color:var(--text-3);margin:20px 0 0;font-size:12.5px}.portal{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.portal-bar{border-bottom:1px solid var(--border);z-index:20;background:#fff;align-items:center;gap:12px;padding:12px 20px;display:flex;position:sticky;top:0}.portal-tag{letter-spacing:.09em;text-transform:uppercase;color:var(--text-3);border:1px solid var(--border);border-radius:5px;padding:2px 7px;font-size:10.5px;font-weight:600}.portal-burger{cursor:pointer;color:var(--text-2);background:0 0;border:none;padding:4px;display:none}.portal-who{text-align:right;font-size:12.5px}.portal-who .name{font-weight:600}.portal-tabs{border-bottom:1px solid var(--border);background:#fff;gap:4px;padding:0 20px;display:flex;overflow-x:auto}.portal-tabs button{color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:7px;padding:12px 14px;font-size:13.5px;font-weight:500;display:flex}.portal-tabs button:hover{color:var(--text)}.portal-tabs button.active{color:var(--brand);border-bottom-color:var(--brand)}.portal-main{flex:1;width:min(940px,100%);margin:0 auto;padding:26px 20px 50px}.portal-foot{text-align:center;color:var(--text-3);border-top:1px solid var(--border);background:#fff;padding:20px;font-size:12.5px}.portal-head{margin-bottom:20px}.portal-head h1{margin:0 0 5px;font-size:24px}.portal-head p.sub{color:var(--text-2);margin:0 0 14px;font-size:14px}.portal-alert{background:#fff8e6;border:1px solid #f5d78e;border-radius:12px;flex-direction:column;gap:7px;margin-bottom:20px;padding:14px 16px;font-size:13.5px;display:flex}.portal-alert strong{font-size:14px}.approve-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.portal-stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:26px;display:grid}.pstat{text-align:left;border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:12px;padding:16px}.pstat:hover{border-color:var(--brand)}.pstat .n{letter-spacing:-.02em;font-size:26px;font-weight:650}.pstat .l{color:var(--text-2);margin-top:3px;font-size:12.5px}.overdue{color:var(--red)}.portal-section{margin-top:26px}.portal-section h2{margin:0 0 12px;font-size:15px}.portal-toolbar{align-items:center;gap:14px;margin-bottom:14px;font-size:13px;display:flex}.portal-toolbar .right{margin-left:auto}.portal-list{flex-direction:column;gap:8px;display:flex}.portal-list.tight{gap:4px}.prow{text-align:left;border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:11px;align-items:center;gap:14px;width:100%;padding:14px 16px;display:flex}.prow:hover{border-color:var(--brand)}.prow.static{cursor:default}.prow.static:hover{border-color:var(--border)}.prow .main{flex:1;min-width:0}.prow .t{font-size:14px;font-weight:600}.prow .s{color:var(--text-3);margin-top:2px;font-size:12.5px}.prow .right{text-align:right;flex-shrink:0}.prow .amt{margin-top:4px;font-size:14px;font-weight:600}.pbadge{background:var(--bg);color:var(--text-2);border:1px solid var(--border);border-radius:20px;padding:3px 9px;font-size:11.5px;font-weight:600;display:inline-block}.pbadge.s-new_repair,.pbadge.t-open,.pbadge.q-sent,.pbadge.i-sent{color:#0b5cff;background:#e8f0ff;border-color:#c9dcff}.pbadge.s-diagnosing,.pbadge.s-in_progress,.pbadge.t-in_progress{color:#6d28d9;background:#f2eaff;border-color:#ddd0f7}.pbadge.s-awaiting_parts,.pbadge.s-on_hold,.pbadge.s-awaiting_payment,.pbadge.t-waiting_customer,.pbadge.q-expired,.pbadge.i-part_paid{color:#b45309;background:#fff5e0;border-color:#f5dca8}.pbadge.s-completed,.pbadge.t-resolved,.pbadge.q-accepted,.pbadge.i-paid{color:#15803d;background:#e6f7ec;border-color:#bfe6cd}.pbadge.q-declined,.pbadge.i-overdue{color:#b91c1c;background:#fdeaea;border-color:#f5c6c6}.portal-modal{z-index:60;background:#0f172a80;place-items:start center;padding:24px 16px;display:grid;position:fixed;inset:0;overflow-y:auto}.portal-modal-card{background:#fff;border-radius:16px;width:min(600px,100%);padding:24px;box-shadow:0 24px 70px #0000004d}.portal-modal-card.wide{width:min(760px,100%)}.pm-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.pm-head h2{margin:0;font-size:19px}.pm-head .s{color:var(--text-3);margin-top:3px;font-size:12.5px}.portal-modal-card h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);margin:20px 0 7px;font-size:13px}.pre{white-space:pre-wrap;margin:0;font-size:13.5px;line-height:1.6}.pre.small{color:var(--text-2);font-size:12.5px}.pm-facts{grid-template-columns:auto 1fr;gap:6px 18px;margin:16px 0 0;font-size:13.5px;display:grid}.pm-facts dt{color:var(--text-3)}.pm-facts dd{margin:0}.pm-approve{border-top:1px solid var(--border);margin-top:20px;padding-top:16px}.pm-approve p{margin:0 0 12px;font-size:13.5px}.pm-resolution{background:#e6f7ec;border-radius:10px;margin-top:14px;padding:12px 14px}.pm-resolution h3{color:#15803d;margin-top:0}.pm-thread{flex-direction:column;gap:10px;display:flex}.pm-msg{background:var(--bg);border-radius:10px;padding:11px 13px}.pm-msg .who{color:var(--text-3);margin-bottom:4px;font-size:11.5px;font-weight:600}.btn.primary.sm{padding:5px 12px;font-size:12.5px}@media (width<=640px){.portal-burger{display:block}.portal-tabs{flex-direction:column;padding:6px 12px 10px;display:none}.portal-tabs.open{display:flex}.portal-tabs button{border-bottom:none;border-left:2px solid #0000}.portal-tabs button.active{border-left-color:var(--brand);border-bottom-color:#0000}.portal-main{padding:18px 14px 40px}.portal-modal-card{padding:18px}}.book-card>h1{text-align:center}.book-card>.lead,.book-card>.book-lede{text-align:center;max-width:52ch;margin-left:auto;margin-right:auto}.kcard .c.fault{color:var(--text-3);margin-top:2px;font-size:12px}.appt-group+.appt-group{margin-top:22px}.appt-group-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin:0 0 10px;font-size:12px;font-weight:700}.appt-types{grid-template-columns:repeat(3,1fr);align-items:stretch;gap:12px;display:grid}@media (width<=900px){.appt-types{grid-template-columns:repeat(2,1fr)}}.appt-type{text-align:left;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--border-strong);cursor:pointer;width:100%;font:inherit;color:var(--text);border-radius:12px;flex-direction:column;gap:6px;padding:15px 16px 14px;transition:border-color .12s,box-shadow .12s,transform 80ms;display:flex}.appt-type:hover{border-color:var(--border-strong);box-shadow:0 3px 12px #0f172a12}.appt-type:active{transform:translateY(1px)}.appt-type:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.appt-type.chosen{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 3px #0b5cff1f}.appt-type .n{font-size:15px;font-weight:650;line-height:1.3}.appt-type .b{color:var(--text-2);flex:1;font-size:13px;line-height:1.45}.appt-type .d{color:var(--text-3);margin-top:2px;font-size:12px}.day-strip{scrollbar-width:thin;-webkit-overflow-scrolling:touch;gap:8px;padding:2px 2px 8px;display:flex;overflow-x:auto}.day-chip{background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:center;min-width:78px;font:inherit;color:var(--text);border-radius:10px;flex:none;padding:9px 12px}.day-chip:hover{border-color:var(--border-strong)}.day-chip.chosen{border-color:var(--brand);background:var(--brand-soft)}.day-chip .dd{font-size:13px;font-weight:650;display:block}.day-chip .dn{color:var(--text-3);margin-top:2px;font-size:11px;display:block}.slot-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;display:grid}.slot{background:var(--surface);border:1px solid var(--border);cursor:pointer;font:inherit;font-variant-numeric:tabular-nums;color:var(--text);border-radius:9px;padding:11px 6px}.slot:hover{border-color:var(--brand);color:var(--brand)}.slot.chosen{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:650}.chosen-banner{background:var(--brand-soft);border:1px solid var(--brand);border-radius:11px;margin:16px 0;padding:13px 15px;line-height:1.55}.chosen-banner strong{display:block}.chosen-banner .linkish{margin-top:6px;display:inline-block}.where-to-come{background:var(--surface-2);border:1px solid var(--border);text-align:left;border-radius:11px;margin:16px 0;padding:13px 15px;line-height:1.55}.where-to-come .addr{white-space:pre-line;color:var(--text-2);margin:5px 0 8px}@media (width<=520px){.appt-types{grid-template-columns:1fr}.slot-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}}.slot-grid{margin-bottom:22px}.timeline{gap:2px;display:grid}.tl-row{border-top:1px solid var(--border);grid-template-columns:92px 1fr;gap:14px;padding:12px 0;display:grid}.tl-row:first-child{border-top:none}.tl-when{text-align:right;padding-top:1px}.tl-when .d{white-space:nowrap;font-size:13px;font-weight:600}.tl-when .y{color:var(--text-3);font-size:11px}.tl-body{min-width:0}.tl-body .pre{white-space:pre-wrap;word-break:break-word}@media (width<=560px){.tl-row{grid-template-columns:1fr;gap:4px}.tl-when{text-align:left}.tl-when .y{margin-left:6px;display:inline}}.money-input{display:block;position:relative}.money-input .sym{color:var(--text-3);pointer-events:none;font-size:14px;line-height:1;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.money-input .input{text-align:right;font-variant-numeric:tabular-nums;padding-left:24px}.money-input.disabled .sym{opacity:.5}.money-input .input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.money-input .input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.money-input .input{appearance:textfield}.tl-row.openable{cursor:pointer;border-radius:8px;margin:0 -8px;padding-left:8px;padding-right:8px}.tl-row.openable:hover{background:var(--surface-2)}.dash-row.openable{cursor:pointer;border-radius:8px;margin:0 -8px;padding-left:8px!important;padding-right:8px!important}.dash-row.openable:hover{background:var(--surface-2)}.stat-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}.stat-row .card-body{padding:14px 16px}.stat-value{font-variant-numeric:tabular-nums;margin-top:4px;font-size:24px;font-weight:650}@media (width<=620px){.stat-row{grid-template-columns:repeat(2,1fr)}}.search-trigger{color:#94a3b8;width:calc(100% - 20px);font:inherit;cursor:pointer;text-align:left;background:#ffffff0f;border:1px solid #ffffff17;border-radius:8px;align-items:center;gap:8px;margin:0 10px 4px;padding:7px 10px;font-size:13px;display:flex}.search-trigger:hover{color:#e2e8f0;background:#ffffff1c}.search-trigger span{flex:1}.search-trigger kbd{font:inherit;color:#94a3b8;background:#ffffff14;border-radius:4px;padding:1px 5px;font-size:10.5px}.search-scrim{z-index:200;background:#0f172a73;justify-content:center;padding:12vh 16px 16px;display:flex;position:fixed;inset:0}.search-panel{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;width:100%;max-width:640px;max-height:70vh;display:flex;overflow:hidden}.search-input-row{border-bottom:1px solid var(--border);color:var(--text-3);align-items:center;gap:10px;padding:12px 14px;display:flex}.search-input{font:inherit;color:var(--text);background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:15px}.search-input::placeholder{color:var(--text-3)}.search-busy{border:2px solid var(--border-strong);border-top-color:var(--brand);border-radius:50%;flex:0 0 14px;width:14px;height:14px;animation:.7s linear infinite spin}.search-results{padding:6px 0 8px;overflow-y:auto}.search-note{color:var(--text-2);margin:14px 18px;font-size:13px;line-height:1.5}.search-group-head{text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);padding:10px 16px 4px;font-size:10.5px;font-weight:600}.sr-row{cursor:pointer;align-items:center;gap:10px;padding:7px 16px;font-size:13.5px;display:flex}.sr-row.on{background:var(--brand-soft)}.sr-row.dead{cursor:default}.sr-row.dead.on{background:var(--surface-2)}.sr-icon{color:var(--text-3);display:flex}.sr-row.on .sr-icon{color:var(--brand)}.sr-main{flex-direction:column;flex:1;min-width:0;display:flex}.sr-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.sr-sub{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.sr-ref{color:var(--text-2);background:var(--slate-soft);white-space:nowrap;border-radius:5px;padding:2px 6px;font-size:11.5px;font-weight:600}.sr-extra{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;max-width:34%;font-size:12px;overflow:hidden}.search-foot{border-top:1px solid var(--border);color:var(--text-3);justify-content:space-between;gap:12px;padding:8px 16px;font-size:11.5px;display:flex}@media (width<=640px){.search-scrim{padding:8vh 10px 10px}.sr-extra,.search-trigger kbd{display:none}}.till{grid-template-columns:1fr 340px;align-items:start;gap:16px;display:grid}.till-left{min-width:0}.till-add{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.till-table td{vertical-align:middle}.till-desc{font-weight:500}.till-detail{color:var(--text-2);margin-top:1px;font-size:12px}.till-right{padding:14px;position:sticky;top:16px}.till-total{justify-content:space-between;align-items:baseline;font-size:15px;display:flex}.till-total strong{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:26px}.till-vat{color:var(--text-3);margin-top:2px;font-size:12px}.till-methods{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.btn.big{margin-top:6px;padding:12px;font-size:15px;font-weight:600}.pick-list{max-height:52vh;margin:0 -4px;overflow-y:auto}.pick-row{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:9px 10px;display:flex}.pick-row:hover{background:var(--brand-soft)}.pick-main{flex-direction:column;flex:1;min-width:0;display:flex}.pick-title{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.pick-sub{color:var(--text-2);font-size:12px}.pick-price{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.takings{margin-top:14px;padding:14px}.takings-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:10px;display:grid}.takings-grid>div{flex-direction:column;gap:2px;display:flex}.takings-grid span{color:var(--text-3);font-size:11.5px}.takings-grid strong{font-variant-numeric:tabular-nums;font-size:17px}.takings-total{border-top:1px solid var(--border);justify-content:space-between;align-items:baseline;padding-top:10px;display:flex}.takings-total strong{font-variant-numeric:tabular-nums;font-size:20px}@media (width<=900px){.till{grid-template-columns:1fr}.till-right{position:static}.takings-grid{grid-template-columns:repeat(2,1fr)}}@media print{.sidebar,.topbar,.modal-head,.modal-foot,.till-add{display:none!important}.overlay{background:0 0;position:static}.modal{box-shadow:none;max-width:80mm}.receipt-warn{display:none}}.notice{border-left:3px solid var(--amber);padding:14px}.notice p{color:var(--text-2);margin:6px 0 0;font-size:13px;line-height:1.5}.cell-main{white-space:nowrap;text-overflow:ellipsis;max-width:320px;line-height:18px;overflow:hidden}.cell-sub{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;max-width:260px;font-size:12px;line-height:16px;overflow:hidden}td.nowrap,th.nowrap{white-space:nowrap}.orders-table td{height:52px;padding-top:8px;padding-bottom:8px}.orders-table th:first-child,.orders-table td:first-child,.orders-table th:last-child,.orders-table td:last-child{white-space:nowrap;width:1%}.orders-table th:nth-child(2){width:34%}table.data th.num{text-align:right}.import-drop{border:2px dashed var(--border-strong);border-radius:var(--radius-lg);text-align:center;color:var(--text-3);flex-direction:column;align-items:center;gap:10px;padding:22px;display:flex}.import-drop input{font:inherit;font-size:13px}.import-summary{grid-template-columns:repeat(4,1fr);gap:10px;margin:4px 0 12px;display:grid}.import-summary>div{background:var(--surface-2);border-radius:var(--radius);flex-direction:column;gap:2px;padding:10px 12px;display:flex}.import-summary span{color:var(--text-3);font-size:11.5px}.import-summary strong{font-variant-numeric:tabular-nums;font-size:20px}@media (width<=700px){.import-summary{grid-template-columns:repeat(2,1fr)}}.source-picks{grid-template-columns:1fr 1fr;gap:12px;margin:6px 0 4px;display:grid}.source-pick{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);font:inherit;text-align:left;cursor:pointer;color:var(--text-3);flex-direction:column;align-items:flex-start;gap:4px;padding:16px;display:flex}.source-pick:hover:not(:disabled){border-color:var(--brand);background:var(--brand-soft)}.source-pick:disabled{opacity:.6;cursor:default}.source-title{color:var(--text);margin-top:4px;font-size:14px;font-weight:600}.source-sub{color:var(--text-2);font-size:12.5px;line-height:1.5}@media (width<=700px){.source-picks{grid-template-columns:1fr}}.type-pick{display:inline-block;position:relative}.type-btn{font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:20px;align-items:center;gap:4px;padding:1px 4px 1px 1px;display:inline-flex}.type-btn:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-2)}.type-btn:disabled{opacity:.6;cursor:default}.type-caret{color:var(--text-3);font-size:10px}.type-menu{z-index:50;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);min-width:140px;padding:4px;position:absolute;top:calc(100% + 4px);left:0}.type-menu button{text-align:left;width:100%;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:5px 6px;display:block}.type-menu button:hover{background:var(--surface-2)}.type-menu button.on{background:var(--brand-soft)}.contact-search{position:relative}.contact-search-input{color:var(--text-3);align-items:center;gap:8px;display:flex}.contact-search-input .input{flex:1;min-width:0}.contact-hits{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);max-height:260px;margin-top:6px;overflow:hidden auto}.contact-hit{width:100%;font:inherit;text-align:left;cursor:pointer;color:var(--text);background:0 0;border:0;align-items:center;gap:8px;padding:7px 10px;display:flex}.contact-hit+.contact-hit{border-top:1px solid var(--border)}.contact-hit.on,.contact-hit:hover{background:var(--brand-soft)}.contact-hit.add-new{color:var(--brand);border-top:1px solid var(--border);font-weight:500}.hit-main{flex-direction:column;min-width:0;display:flex}.hit-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hit-sub{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.chosen{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);align-items:center;gap:8px;padding:7px 8px 7px 11px;display:flex}.chosen-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:500;overflow:hidden}.invoice{color:var(--text);font-size:12px;line-height:1.45}.inv-head{justify-content:space-between;align-items:flex-start;display:flex}.inv-head h2{letter-spacing:-.02em;font-size:26px;font-weight:400}.inv-logo{height:30px}.inv-seller{margin:14px 0 22px}.inv-seller strong{display:block}.inv-meta{justify-content:space-between;gap:30px;margin-bottom:24px;display:flex}.inv-meta dl{grid-template-columns:auto auto;gap:3px 10px;margin:0;display:grid}.inv-meta dt{font-weight:600}.inv-meta dd{margin:0}.inv-billto{min-width:200px}.inv-billto strong{margin-bottom:4px;display:block}.inv-lines{border-collapse:collapse;width:100%}.inv-lines th{text-align:left;vertical-align:bottom;border-top:1px solid var(--text);border-bottom:1px solid var(--text);padding:6px 8px;font-size:10.5px;font-weight:600}.inv-lines td{vertical-align:top;padding:8px}.inv-lines tbody tr:last-child td{border-bottom:1px solid var(--border-strong)}.inv-lines .r,.inv-totals .r{text-align:right;font-variant-numeric:tabular-nums}.inv-lines .c{text-align:center}.inv-detail{color:var(--text-2);margin-top:2px;font-size:11px}.inv-foot{justify-content:space-between;gap:30px;margin-top:26px;display:flex}.inv-notes{max-width:58%}.inv-notes p{margin:0 0 7px}.inv-notes .small{color:var(--text-2);font-size:11px}.inv-serials{margin-top:14px;font-size:11px}.inv-serials strong{display:block}.inv-totals{min-width:260px}.inv-totals table{border-collapse:collapse;width:100%}.inv-totals th{padding:0 0 4px 12px;font-size:11px;font-weight:600}.inv-totals td{padding:2px 0 2px 12px}.inv-grand{border-top:1px solid var(--text);justify-content:space-between;gap:16px;margin-top:12px;padding-top:10px;font-size:14px;display:flex}.inv-grand strong{font-variant-numeric:tabular-nums}.receipt-warn{background:var(--amber-soft);color:var(--amber);border-radius:8px;margin-top:14px;padding:8px 10px;font-size:12px;line-height:1.5}@media print{@page{size:A4;margin:16mm}body{background:#fff}.sidebar,.topbar,.modal-head,.modal-foot,.till-add,.till-right,.till-left,.takings,.receipt-warn{display:none!important}.overlay{background:0 0;padding:0;display:block;position:static}.modal{box-shadow:none;border:0;border-radius:0;width:100%;max-width:none}.modal-body{max-height:none;padding:0;overflow:visible}.invoice{font-size:11px}.inv-lines thead{display:table-header-group}.inv-lines tr{break-inside:avoid}}.inv-legal{border-top:1px solid var(--border);color:var(--text-2);text-align:center;margin:30px 0 0;padding-top:10px;font-size:10.5px;line-height:1.5}.inv-logo{width:34px;height:34px}.inv-logo.on-paper{display:none}@media print{.inv-logo.on-screen{display:none}.inv-logo.on-paper{display:inline-block}.invoice{padding-bottom:18mm}.inv-legal{background:#fff;margin:0;padding-top:6px;position:fixed;bottom:0;left:0;right:0}}.price-grid td{padding:2px 6px}.price-cell{text-align:right;font-variant-numeric:tabular-nums;width:100%;color:var(--text-1);background:0 0;border:1px solid #0000;border-radius:6px;padding:7px 8px;font-size:13px}.price-cell::placeholder{color:var(--text-3)}.price-cell:hover{border-color:var(--border)}.price-cell:focus{border-color:var(--brand);background:#fff;outline:none}.price-cell.saving{opacity:.55}.prod-trigger{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;width:100%;padding:6px 8px;font-size:13px;display:flex}.prod-trigger:hover{border-color:var(--border)}.prod-trigger>span:first-child{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.prod-caret{color:var(--text-3);font-size:11px}.prod-search{margin-top:4px}.prod-hits{z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:10px;max-height:320px;overflow-y:auto;box-shadow:0 12px 32px #0f172a29}.prod-hits-foot{border-top:1px solid var(--border)}.hit-kind{text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);white-space:nowrap;padding-left:8px;font-size:10px}.line-table th .th-sub{letter-spacing:0;text-transform:none;color:var(--text-3);margin-top:1px;font-size:9px;font-weight:500}.recur-box{border:1px solid var(--border);background:var(--surface-2,#f8fafc);border-radius:10px;margin:4px 0 14px;padding:12px 14px}.recur-box.on{border-color:var(--brand);background:var(--brand-soft)}.recur-detail{padding-left:24px}.note-row{border:1px solid var(--border);background:var(--surface-2,#f8fafc);border-radius:10px;align-items:flex-start;gap:9px;margin:4px 0 14px;padding:11px 14px;font-size:13px;display:flex}.note-row svg{color:var(--text-3);flex:none;margin-top:1px}.pay-link{border:1px solid var(--border);background:var(--surface-2,#f8fafc);border-radius:10px;margin-bottom:14px;padding:12px 14px}.pay-url{word-break:break-all;font-size:12px}.pay-btn{background:var(--text-1);color:#fff;border-color:var(--text-1);font-weight:600;text-decoration:none}.pay-btn:hover{opacity:.9;color:#fff}.trend{position:relative}.trend-plot{align-items:flex-end;gap:2px;height:190px;display:flex;position:relative}.trend-grid{background:var(--border);pointer-events:none;height:1px;position:absolute;left:0;right:0}.trend-slot{cursor:default;flex:1;justify-content:center;align-items:flex-end;height:100%;display:flex}.trend-bar{background:var(--brand);border-radius:4px 4px 0 0;width:100%;max-width:24px;min-height:2px;transition:opacity .12s}.trend-bar.partial{background:var(--brand-soft);box-shadow:inset 0 0 0 1px var(--brand)}.trend-labels{gap:2px;margin-top:6px;display:flex}.trend-label{text-align:center;color:var(--text-3);white-space:nowrap;flex:1;font-size:10.5px;overflow:hidden}.trend-label.on{color:var(--text);font-weight:600}.chart-tip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);pointer-events:none;z-index:2;min-width:168px;padding:9px 12px;font-size:12.5px;position:absolute;top:0;right:0}.chart-tip .row{margin-top:3px}.chart-tip .mono{font-variant-numeric:tabular-nums}@media (width<=720px){.takings-grid{grid-template-columns:repeat(2,1fr)}}.column-fold{cursor:pointer;color:var(--text-3);background:0 0;border:0;border-radius:6px;margin-left:auto;padding:2px 4px;font-size:15px;line-height:1}.column-fold:hover{color:var(--text);background:#0f172a14}.column.folded{flex:0 0 40px;min-height:140px;padding:10px 6px}.column-shut{cursor:pointer;width:100%;height:100%;min-height:120px;color:var(--text-2);background:0 0;border:0;flex-direction:column;align-items:center;gap:8px;padding:0;display:flex}.column-shut:hover{color:var(--text)}.column-shut .n{color:var(--text-3);background:#fff;border-radius:20px;padding:1px 7px;font-size:11px}.column-shut .title{writing-mode:vertical-rl;white-space:nowrap;text-overflow:ellipsis;max-height:210px;font-size:12.5px;font-weight:600;overflow:hidden}.stock-chip{border:1px solid var(--border);background:var(--green-soft);color:var(--green);font-variant-numeric:tabular-nums;cursor:pointer;border-radius:999px;margin:0 2px 3px 0;padding:1px 7px;font-size:11px;font-weight:600;line-height:1.5;display:inline-block}.stock-chip:hover{border-color:var(--brand)}.stock-chip.low{background:var(--amber-soft);color:var(--amber)}.stock-chip.none{background:var(--red-soft);color:var(--red)}.stock-track{color:var(--text-3);cursor:pointer;opacity:0;background:0 0;border:0;margin:0 2px 3px 0;padding:1px 6px;font-size:11px;transition:opacity .12s;display:inline-block}.price-grid td:hover .stock-track,.stock-track:focus-visible{opacity:1}.stock-track:hover{color:var(--brand);text-decoration:underline}.reminders .card-head h3{font-size:14px}.reminder-add{align-items:center;gap:8px;padding:0 16px 10px;display:flex}.reminder-add .input{flex:1;min-width:0}.reminder-extra{flex-wrap:wrap;align-items:center;gap:12px;padding:0 16px 12px;display:flex}.pill-tabs.sm button{padding:4px 10px;font-size:12px}.reminder-list{margin:0;padding:0;list-style:none}.reminder{border-top:1px solid var(--border);align-items:flex-start;gap:10px;padding:9px 0;display:flex}.reminder:first-child{border-top:0}.reminder input[type=checkbox]{flex:none;width:16px;height:16px;margin-top:2px}.reminder-main{flex:1;min-width:0}.reminder-main.as-button{text-align:left;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;margin:0;padding:0}.reminder-main.as-button:disabled{cursor:default}.reminder-main.as-button:hover:not(:disabled) .reminder-title{color:var(--brand)}.reminder.editing{background:var(--surface-2,#f6f7f9);border:1px solid var(--border);border-radius:8px;margin:6px 0;padding:12px;display:block}.reminder-edit{flex-direction:column;gap:8px;display:flex}.reminder-edit-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.linkish.danger{color:var(--red)}.input.sm{padding:5px 8px;font-size:12.5px}.reminder-title{font-size:13.5px;line-height:1.4}.reminder-when{color:var(--text-3);white-space:nowrap;font-size:12px}.reminder-when.late{color:var(--red);font-weight:600}.reminder.going .reminder-title,.reminder.done .reminder-title{color:var(--text-3);text-decoration:line-through}.reminder.going{opacity:.6;transition:opacity .3s}.reminder.done{opacity:.7}.price-grid tr.family-row th{background:var(--surface-2);border-bottom:1px solid var(--border);padding:0;position:sticky;left:0}.family-head{cursor:pointer;text-align:left;width:100%;font:inherit;background:0 0;border:0;align-items:center;gap:9px;padding:9px 12px;display:flex}.family-head:hover{background:#0f172a0a}.family-head .chev{color:var(--text-3);font-size:15px;line-height:1;transition:transform .12s;display:inline-block}.family-head .chev.open{transform:rotate(90deg)}.family-head .family-name{color:var(--text-1);font-size:13px;font-weight:650}.family-head .n{color:var(--text-3);border:1px solid var(--border);background:#fff;border-radius:20px;padding:0 7px;font-size:11px}.price-grid td.indent{padding-left:30px}.track-steps{flex-wrap:wrap;gap:6px;margin:16px 0 0;padding:0;font-size:12.5px;list-style:none;display:flex}.track-steps li{border:1px solid var(--border);color:var(--text-3);background:var(--surface-2);border-radius:999px;padding:5px 10px}.track-steps li.done{color:var(--green);border-color:var(--green)}.track-steps li.now{color:#fff;background:var(--brand);border-color:var(--brand);font-weight:600}.gh-rule{border:none;border-top:1px solid var(--border);max-width:70%;margin:14px auto 18px}.gh-shell{border:1px solid var(--border);background:#fff;border-radius:16px;grid-template-columns:320px 1fr;width:min(1180px,100%);margin:0 auto;display:grid;overflow:hidden;box-shadow:0 14px 40px #0f172a1a}.gh-rail{border-right:1px solid var(--border);padding:26px 24px 30px}.gh-back{border:1px solid var(--border);width:38px;height:38px;color:var(--brand);cursor:pointer;background:#fff;border-radius:50%;place-items:center;margin-bottom:20px;display:grid}.gh-back:hover{background:var(--brand-soft);border-color:var(--brand)}.gh-rail-sub{color:var(--text-3);font-size:13px;font-weight:600;line-height:1.4}.gh-rail-title{margin:6px 0 14px;font-size:22px;line-height:1.25}.gh-facts{gap:9px;margin:0;padding:0;list-style:none;display:grid}.gh-facts li{color:var(--text-2);align-items:flex-start;gap:9px;font-size:13.5px;display:flex}.gh-facts svg{color:var(--text-3);flex:none;margin-top:1px}.gh-rail-blurb{color:var(--text-2);margin:18px 0 0;font-size:13.5px;line-height:1.55}.gh-main{min-width:0;padding:26px 28px 30px}.gh-head{margin:0 0 20px;font-size:19px}.gh-pick{grid-template-columns:1fr 190px;align-items:start;gap:26px;display:grid}.gh-cal-head{justify-content:center;align-items:center;gap:18px;margin-bottom:14px;display:flex}.gh-cal-month{font-size:15.5px;font-weight:650}.gh-nav{width:34px;height:34px;color:var(--text-2);cursor:pointer;background:0 0;border:none;border-radius:50%;font-size:20px;line-height:1}.gh-nav:disabled{opacity:.3;cursor:default}.gh-nav.on{background:var(--brand-soft);color:var(--brand)}.gh-dow,.gh-grid{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.gh-dow{margin-bottom:6px}.gh-dow span{text-align:center;color:var(--text-2);padding:4px 0;font-size:12.5px}.gh-day{aspect-ratio:1;color:var(--text-3);cursor:default;background:0 0;border:none;border-radius:50%;font-size:14px}.gh-day.open{background:var(--brand-soft);color:var(--brand);cursor:pointer;font-weight:600}.gh-day.open:hover{background:#d8e6ff}.gh-day.chosen{background:var(--brand);color:#fff}.gh-tz{margin-top:20px}.gh-tz-label{margin-bottom:6px;font-size:14px;font-weight:650}.gh-tz-value{color:var(--text-2);font-size:13.5px}.gh-times{align-content:start;gap:10px;max-height:460px;padding-right:4px;display:grid;overflow-y:auto}.gh-time{border:1px solid var(--brand);color:var(--brand);cursor:pointer;background:#fff;border-radius:8px;padding:11px 10px;font-size:14.5px;font-weight:600}.gh-time:hover{background:var(--brand);color:#fff}.gh-form{max-width:620px}.gh-actions{justify-content:flex-end;margin-top:20px;display:flex}@media (width<=900px){.gh-shell{grid-template-columns:1fr}.gh-rail{border-right:none;border-bottom:1px solid var(--border);padding-bottom:20px}.gh-pick{grid-template-columns:1fr}.gh-times{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));max-height:none}}
