:root{--page:#f4f5f7;--stripe:#f4f5f7;--surface:#fff;--ink:#15171c;--ink-soft:#6b7280;--ink-faint:#9ca3af;--line:#eef0f3;--line-strong:#e3e6eb;--brand:#0089eb;--brand-deep:#0071c6;--brand-tint:#eaf4fe;--good:#16a34a;--good-tint:#eafbf0;--warn:#d97706;--warn-tint:#fff6e8;--radius-lg:20px;--radius:14px;--radius-sm:10px;--shadow-card:0 1px 2px rgba(15,17,28,.04),0 12px 28px rgba(15,17,28,.05);--shadow-pop:0 20px 60px rgba(15,17,28,.14)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--page);color:var(--ink);font-family:Inter,system-ui,sans-serif;padding:28px 20px 60px;-webkit-font-smoothing:antialiased}.wrap{max-width:1180px;margin:0 auto}header.top{justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:26px}.brandblock,header.top{display:flex;align-items:center}.brandblock{gap:12px}.brandblock .logo{height:34px;width:auto;display:block}.brandblock h1{font-family:Inter,sans-serif;font-weight:800;font-size:26px;margin:0;letter-spacing:-.02em;color:var(--ink)}.brandblock p{margin:0;color:var(--ink-soft);font-size:13.5px}.top-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}button{font-family:inherit;font-size:13.5px;font-weight:600;cursor:pointer;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);padding:9px 16px;transition:border-color .15s,background .15s,box-shadow .15s,color .15s}button:hover{border-color:#d3d7de;background:#fafbfc}button.primary{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 1px 2px rgba(0,137,235,.15),0 8px 16px rgba(0,137,235,.22)}button.primary:hover{background:var(--brand-deep);border-color:var(--brand-deep)}button.ghost{background:transparent;border-color:transparent;color:var(--ink-soft)}button.ghost:hover{color:var(--ink);background:var(--line);border-color:transparent}button.danger{color:#c0362c;border-color:#f3d3cf;background:#fff}button.danger:hover{background:#fdf1ef;border-color:#ebb3ac}button:disabled{opacity:.45;cursor:default}button:disabled:hover{border-color:var(--line-strong);background:var(--surface)}.icon-btn{width:38px;height:38px;padding:0;justify-content:center;border-radius:12px}.controlrow,.icon-btn{display:flex;align-items:center}.controlrow{justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}.weeknav{display:flex;align-items:center;gap:10px}.weeknav .label{font-family:Inter,sans-serif;font-size:16px;font-weight:700;min-width:190px;text-align:center;color:var(--ink)}.mode-toggle{display:inline-flex;background:var(--surface);border:1px solid var(--line-strong);border-radius:999px;padding:3px;gap:2px}.mode-toggle button{border:none;background:transparent;padding:6px 12px;border-radius:999px;font-weight:600;color:var(--ink-soft)}.mode-toggle button.active{background:var(--brand);color:#fff}.navbar{display:inline-flex;gap:4px;background:#dde0e5;border-radius:14px;padding:5px;margin-bottom:22px}.navbar .navtab{border:none;background:transparent;padding:9px 20px;border-radius:10px;font-family:Inter,sans-serif;font-weight:700;font-size:13.5px;color:var(--ink-soft);cursor:pointer;transition:background .12s,color .12s}.navbar .navtab:hover{color:var(--ink)}.navbar .navtab.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(15,17,28,.08)}.topnav{gap:22px;background:var(--surface);border:1px solid var(--line-strong);border-radius:16px;padding:10px 18px;margin-bottom:22px;flex-wrap:wrap;box-shadow:var(--shadow-card)}.topnav,.topnav-left{display:flex;align-items:center}.topnav-left{gap:10px}.topnav-logo{height:28px;width:auto}.topnav-links{display:flex;gap:4px;flex:1 1}.topnav-link{border:none;background:transparent;padding:9px 18px;border-radius:999px;font-family:Inter,sans-serif;font-weight:700;font-size:13.5px;color:var(--ink-soft);cursor:pointer;white-space:nowrap;transition:background .12s,color .12s}.topnav-link:hover{color:var(--ink)}.topnav-link.active{background:var(--brand);color:#fff}.topnav-right{gap:8px;flex-wrap:wrap}.topnav-avatar,.topnav-right{display:flex;align-items:center}.topnav-avatar{width:34px;height:34px;border-radius:50%;background:var(--brand-tint);color:var(--brand-deep);justify-content:center;font-weight:800;font-size:13px;flex-shrink:0;border:none;cursor:pointer;padding:0;font-family:Inter,sans-serif}.topnav-profile{position:relative}.topnav-menu{position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border:1px solid var(--line-strong);border-radius:12px;box-shadow:var(--shadow-pop);padding:6px;min-width:200px;z-index:50}.topnav-menu-email{padding:8px 10px;font-size:12px;color:var(--ink-faint);border-bottom:1px solid var(--line);margin-bottom:4px;word-break:break-all}.topnav-menu-item{display:block;width:100%;text-align:left;border:none;background:transparent;padding:9px 10px;border-radius:8px;font-family:Inter,sans-serif;font-weight:600;font-size:13.5px;color:var(--ink);cursor:pointer}.topnav-menu-item:hover{background:var(--page)}.template-banner{background:var(--warn-tint);border:1px solid #f3dcb2;color:#8a5a0a;font-size:13px;padding:10px 16px;border-radius:var(--radius-sm);margin-bottom:14px}.hint{color:var(--ink-faint);margin:0 0 14px}.hint,.notice{font-size:12.5px}.notice{color:#8a5a0a;background:var(--warn-tint);border:1px solid #f3dcb2;border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:16px}.gridscroll{overflow-x:auto;border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-card)}.calgrid{display:grid;grid-template-columns:56px repeat(5,minmax(160px,1fr));min-width:900px}.gcell{border-right:1px solid var(--line-strong)}.calgrid>.gcell:nth-child(6n){border-right:none}.corner{border-bottom:1px solid var(--line);border-top-left-radius:var(--radius-lg)}.corner,.dayhead{background:var(--surface)}.dayhead{padding:14px 8px;text-align:center;border-bottom:1px solid var(--line)}.dayhead.alt{background:var(--stripe)}.dayhead .dayname{display:block;font-size:14px;font-weight:700;color:var(--ink)}.dayhead .daydate{display:block;font-weight:500;font-size:11.5px;margin-top:1px;color:var(--ink-faint)}.timeaxis{position:relative;background:var(--surface)}.timeaxis .tick{position:absolute;left:0;right:8px;text-align:right;font-size:10px;font-weight:600;color:var(--ink-faint);transform:translateY(-6px)}.track{position:relative;cursor:pointer;background:repeating-linear-gradient(to bottom,var(--trackbg,var(--surface)) 0,var(--trackbg,var(--surface)) calc(var(--hrpx) - 1px),var(--line) calc(var(--hrpx) - 1px),var(--line) var(--hrpx))}.track.alt{--trackbg:var(--stripe)}.track:hover{background-color:#fafbfd}.addhint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--brand);font-size:22px;opacity:0;pointer-events:none;transition:opacity .12s}.track:hover .addhint{opacity:.28}.block{position:absolute;border-radius:12px;padding:7px 9px;overflow:hidden;max-width:96px;box-shadow:0 2px 5px rgba(15,17,28,.12);cursor:pointer;color:#fff;display:flex;flex-direction:column;justify-content:center;gap:1px;transition:box-shadow .12s,transform .12s}.block:hover{box-shadow:0 4px 12px rgba(15,17,28,.2);transform:translateY(-1px)}.block .bname{font-size:15.5px;font-weight:800;letter-spacing:.01em}.block .bname,.block .boffice{line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.block .boffice{display:flex;align-items:center;gap:3px;font-size:10.5px;font-weight:700;opacity:.92}.block .btime{font-size:9.5px;font-weight:600;opacity:.85;line-height:1.2;white-space:nowrap;overflow:hidden}.legend{display:flex;flex-wrap:wrap;gap:8px 10px;margin-top:18px}.legend .item{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ink-soft);background:var(--surface);border:1px solid var(--line-strong);border-radius:999px;padding:6px 12px 6px 8px}.legend .swatch{width:10px;height:10px;border-radius:50%}footer.note{margin-top:24px;font-size:12px;color:var(--ink-faint);text-align:center}.pending-panel{margin-top:20px;border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--radius-lg);padding:18px 20px;box-shadow:var(--shadow-card)}.pending-panel h3{margin:0 0 4px;font-family:Inter,sans-serif;font-weight:800;font-size:16px;color:var(--ink)}.pending-panel p.sub{margin:0 0 14px;font-size:12.5px;color:var(--ink-soft)}.pending-item{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--page);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:8px}.pending-item .who{font-weight:700;font-size:13px;min-width:150px;color:var(--ink)}.pending-item .when{font-size:12.5px;color:var(--ink-soft);flex:1 1;min-width:140px}.pending-item .office-picks{display:flex;gap:6px;flex-wrap:wrap}.pending-item .office-picks button{padding:6px 12px;font-size:12px}.overlay{position:fixed;inset:0;background:rgba(21,23,28,.45);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto;z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--surface);border-radius:var(--radius-lg);max-width:440px;width:100%;padding:28px 26px 24px;box-shadow:var(--shadow-pop)}.modal h2{font-family:Inter,sans-serif;font-weight:800;font-size:19px;margin:0 0 4px;color:var(--ink);letter-spacing:-.01em}.modal .sub{font-size:12.5px;color:var(--ink-soft);margin:0 0 18px}.modal h3{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);margin:20px 0 10px;font-weight:800}.rowedit{display:flex;align-items:center;gap:8px;margin-bottom:8px}.rowedit input[type=text]{flex:1 1;font-family:inherit;font-size:13.5px;padding:9px 11px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--page);color:var(--ink)}.rowedit input[type=text]:focus{outline:2px solid var(--brand);outline-offset:1px}.dot{width:14px;height:14px;border-radius:50%;flex-shrink:0}.rowedit .del{width:30px;height:30px;padding:0;border-radius:var(--radius-sm);color:var(--ink-faint);font-size:15px;line-height:1}.addrow{margin-top:6px;font-size:13px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.modal-actions.split{justify-content:space-between}.field{margin-bottom:14px}.field label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);margin-bottom:5px}.field select{width:100%;font-family:inherit;font-size:14px;padding:10px 11px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--page);color:var(--ink)}.field-row{display:flex;gap:10px}.field-row .field{flex:1 1}.importsummary{font-size:13px;margin-top:14px}.importsummary .ok{color:var(--good)}.importsummary .warn{color:var(--warn)}.clin-card{border:1px solid var(--line-strong);border-radius:var(--radius);padding:16px 18px 18px;margin-bottom:12px;background:var(--page)}.clin-card-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line-strong)}.clin-card-head .dot{width:16px;height:16px;flex-shrink:0}.clin-card-head input{flex:1 1;font-size:15.5px;font-weight:800;color:var(--ink);border:none;background:transparent;padding:2px 0;font-family:Inter,sans-serif;letter-spacing:-.01em}.clin-card-head input:focus{outline:none;border-bottom:1.5px solid var(--brand)}.clin-field{margin-bottom:12px}.clin-field:last-child{margin-bottom:0}.clin-field label{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:800;color:var(--ink-faint);margin-bottom:5px}.clin-field input[type=email],.clin-field input[type=text],.clin-field select{width:100%;font-family:inherit;font-size:13.5px;padding:9px 11px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink)}.clin-field-row{display:flex;gap:6px;align-items:center}.clin-field-row input{flex:1 1}.clin-badge{font-size:10px;font-weight:800;color:var(--good);background:var(--good-tint);padding:3px 9px;border-radius:999px;white-space:nowrap}.clin-gap-toggle{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:var(--ink-soft);line-height:1.4;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:10px 12px}.clin-gap-toggle input{margin-top:2px}.toast-stack{position:fixed;top:20px;right:20px;z-index:100;display:flex;flex-direction:column;gap:8px;max-width:340px}.toast{padding:12px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:700;box-shadow:var(--shadow-pop);animation:toast-in .18s ease-out}.toast-ok{background:#16311f;color:#fff}.toast-warn{background:#3a2410;color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;margin:-28px -20px -60px;background:var(--page)}.login-card{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-lg);padding:38px 34px;max-width:360px;width:100%;box-shadow:var(--shadow-card);text-align:center}.login-card h1{font-family:Inter,sans-serif;font-weight:800;font-size:22px;margin:0 0 6px;letter-spacing:-.01em;color:var(--ink)}.login-card p{color:var(--ink-soft);font-size:13.5px;margin:0 0 22px}.login-card input{width:100%;font-family:inherit;font-size:16px;padding:12px 14px;border:1px solid var(--line-strong);border-radius:999px;background:var(--page);color:var(--ink);text-align:center;letter-spacing:.05em;margin-bottom:14px}.login-card input:focus{outline:2px solid var(--brand);outline-offset:1px}.login-card button{width:100%;padding:12px;font-size:14px}.login-error{color:#c0362c;font-size:12.5px;margin:-4px 0 14px}@media (max-width:640px){.controlrow{flex-direction:column;align-items:stretch}.week-actions,.weeknav{justify-content:center}}