:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#1a1a1a;background:#f5f5f7}*{box-sizing:border-box}body{margin:0}.centered{min-height:100vh;display:grid;place-items:center;padding:24px}.card{background:#fff;border:1px solid #e3e3e8;border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:12px;width:100%;max-width:420px}.card h1,.card h2{margin:0 0 4px}label{display:flex;flex-direction:column;gap:4px;font-size:14px}input,select{padding:8px 10px;border:1px solid #cfcfd6;border-radius:8px;font-size:14px}button{padding:8px 14px;border:0;border-radius:8px;background:#2f6fed;color:#fff;font-size:14px;cursor:pointer}button:disabled{opacity:.5;cursor:default}button.link{background:transparent;color:#2f6fed;padding:4px;text-align:left}.error{color:#c0392b;font-size:13px;margin:0}.muted{color:#6b6b73}.small{font-size:12px}.badge{background:#eef2ff;color:#2f6fed;border-radius:999px;padding:2px 10px;font-size:12px}.dashboard{max-width:900px;margin:0 auto;padding:16px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 4px;border-bottom:1px solid #e3e3e8;margin-bottom:16px}.panels{display:grid;gap:16px}.panels .card{max-width:none}.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.row input,.row select{flex:1 1 90px;min-width:0}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;background:#fafafb;border:1px solid #ededf2;border-radius:8px;font-size:14px}.tabs{display:flex;gap:4px}.tab{background:transparent;color:#444;border:1px solid transparent;border-radius:8px;padding:6px 12px}.tab.on{background:#eef2ff;color:#2f6fed}.content{margin-top:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-grid .row,.form-grid .error,.form-grid .ok-msg{grid-column:1 / -1}.check{display:flex;align-items:center;gap:6px;font-size:14px;margin:4px 0}.check input{flex:0 0 auto;width:auto}button.danger{background:#c0392b}.agenda-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.nav{display:flex;align-items:center;gap:6px}.agenda-label{margin-left:8px}.seg{display:inline-flex;border:1px solid #cfcfd6;border-radius:8px;overflow:hidden}.seg button{background:#fff;color:#444;border:0;border-radius:0;padding:6px 12px}.seg button.on{background:#2f6fed;color:#fff}.appt-form,.appt-detail{margin-bottom:12px}.agenda-colhead{display:flex}.gutter-spacer{width:52px;flex:0 0 52px}.colhead{flex:1 1 0;text-align:center;font-size:12px;color:#6b6b73;padding:4px 0;text-transform:capitalize}.colhead.is-today{color:#2f6fed;font-weight:600}.agenda-body{display:flex;border-top:1px solid #e3e3e8}.time-gutter{position:relative;width:52px;flex:0 0 52px}.hour-mark{position:absolute;right:6px;transform:translateY(-50%);font-size:11px;color:#9a9aa2}.day-cols{display:flex;flex:1 1 0}.day-col{position:relative;flex:1 1 0;border-left:1px solid #ededf2;cursor:pointer}.gridline{position:absolute;left:0;right:0;border-top:1px solid #f0f0f4}.work-band{position:absolute;left:0;right:0;background:#f4f8ff}.day-col.is-static{cursor:default}.busy-band{position:absolute;left:3px;right:3px;background:repeating-linear-gradient(-45deg,#e8e8ee,#e8e8ee 6px,#f0f0f4 6px,#f0f0f4 12px);border:1px solid #dcdce4;border-radius:6px;color:#7a7a84;font-size:10px;padding:2px 6px;overflow:hidden}.appt.is-mine{cursor:default;box-shadow:0 0 0 2px #fff,0 0 0 3px currentColor}.tab-badge{background:#e0a72f;color:#fff;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700;margin-left:6px}.appt{position:absolute;left:3px;right:3px;padding:3px 6px;border:0;border-radius:6px;overflow:hidden;text-align:left;display:flex;flex-direction:column;gap:1px;font-size:11px;line-height:1.2;color:#fff;cursor:pointer}.appt .appt-time{font-weight:600}.appt .appt-svc{opacity:.85}.appt.s-confirmed{background:#2f6fed}.appt.s-requested{background:#e0a72f}.appt.s-completed{background:#3aa66b}.appt.s-no_show{background:#9aa0aa}.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;align-items:end}.field-grid button{height:36px}.field-grid .error{grid-column:1 / -1}.danger-link{color:#c0392b!important}.steps{margin:0;padding-left:0;list-style:none;display:grid;gap:2px}.badge.st-requested{background:#fdf3d7;color:#9a7016}.badge.st-confirmed{background:#e3f5ec;color:#1e7a4c}.badge.st-rejected{background:#fdeaea;color:#c0392b}.badge.st-cancelled{background:#f0f0f4;color:#6b6b73}.badge.st-completed{background:#e7f0ff;color:#2f6fed}.badge.st-no_show{background:#f0f0f4;color:#6b6b73}.appt-list li{flex-direction:column;align-items:stretch}.appt-row{border-left:4px solid #cfcfd6}.appt-row.st-requested{border-left-color:#e0a72f}.appt-row.st-confirmed{border-left-color:#3aa66b}.appt-row.st-rejected{border-left-color:#c0392b}.appt-row.st-cancelled{border-left-color:#9aa0aa}.appt-main{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.confirm-box,.proposal-box{background:#f4f8ff;border:1px solid #d7e0ff;border-radius:10px;padding:12px;margin-top:10px;display:flex;flex-direction:column;gap:8px}.confirm-box p,.proposal-box p{margin:0;font-size:14px}.bell-wrap{position:relative}.bell{background:transparent;padding:6px 8px;font-size:18px;line-height:1;position:relative}.bell-badge{position:absolute;top:0;right:0;background:#c0392b;color:#fff;border-radius:999px;font-size:10px;padding:1px 5px;font-weight:700}.bell-panel{position:absolute;right:0;top:calc(100% + 6px);width:min(340px,calc(100vw - 32px));max-height:60vh;overflow:auto;background:#fff;border:1px solid #e3e3e8;border-radius:12px;box-shadow:0 8px 24px #0000001f;z-index:50;padding:10px}.bell-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.bell-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.bell-list li{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:8px;background:#fafafb;border:1px solid #ededf2;font-size:13px}.bell-list li.is-unread{background:#eef2ff;border-color:#d7e0ff}.bell-title{font-weight:600}.bell-body{color:#444}.bell-time{color:#9a9aa2;font-size:11px}.ok-msg{color:#2c8c59;font-size:13px;margin:6px 0}.slots{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.slot{background:#eef2ff;color:#2f6fed;border:1px solid #d7e0ff;border-radius:8px;padding:8px 12px}.slot:disabled{opacity:.5}.join-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:28px;letter-spacing:4px;font-weight:700;color:#2f6fed;background:#f4f8ff;border:1px dashed #b9ccff;border-radius:10px;padding:12px;text-align:center}@media(max-width:640px){.dashboard{padding:8px}.topbar{flex-wrap:wrap;row-gap:8px;padding:8px 0}.topbar>div:first-child{order:1;flex:1 1 auto}.topbar>.row{order:2}.tabs{order:3;flex:1 1 100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{white-space:nowrap;flex:0 0 auto}button{padding:10px 14px}button.link,.bell{padding:8px}input,select{padding:10px;font-size:16px}.form-grid{grid-template-columns:1fr}.field-grid{grid-template-columns:1fr 1fr}.field-grid label:first-child{grid-column:1 / -1}.field-grid button{grid-column:1 / -1;height:auto}.gutter-spacer,.time-gutter{width:40px;flex:0 0 40px}.hour-mark{font-size:10px}.appt{font-size:10px;padding:2px 4px}.agenda-head{gap:8px}.agenda-label{font-size:14px}.slots{gap:10px}.slot{padding:12px 16px;font-size:15px}.list li{flex-wrap:wrap}}
