@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--brand: #0f8a6a;--brand-600: #0d7a5e;--brand-700: #0a6650;--brand-50: #e6f4ef;--brand-100: #cfe9df;--brand-200: #a7d8c5;--bg: #f6f8f7;--surface: #ffffff;--surface-2: #f1f4f3;--border: #e6ebe8;--border-strong: #d6dedb;--ink-1: #0f1d1a;--ink-2: #2c3a36;--ink-3: #5b6a65;--ink-4: #8a978f;--ink-5: #b8c2bc;--blue: #2563eb;--blue-50: #e8efff;--red: #c43a3a;--red-50: #fbecec;--amber: #b97309;--amber-50: #fbf2e1;--green: #0f8a6a;--green-50: #e6f4ef;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-xl: 22px;--shadow-sm: 0 1px 2px rgba(15,29,26,.04);--shadow: 0 1px 2px rgba(15,29,26,.04), 0 4px 12px rgba(15,29,26,.06);--shadow-lg: 0 8px 24px rgba(15,29,26,.1);--font: "Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{font-family:var(--font);color:var(--ink-1);background:var(--bg);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}a{text-decoration:none}#root{display:flex;justify-content:center;background:var(--bg);min-height:100vh}.app-shell{width:100%;max-width:430px;min-height:100vh;display:flex;flex-direction:column;background:var(--bg);position:relative}.screen{flex:1;display:flex;flex-direction:column;background:var(--bg);overflow:hidden;position:relative}.screen-scroll{flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;padding-bottom:90px}.screen-scroll::-webkit-scrollbar{width:4px}.screen-scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 18px;border-radius:var(--radius);border:1px solid transparent;font-size:15px;font-weight:600;letter-spacing:-.01em;cursor:pointer;transition:all .15s;white-space:nowrap}.btn-primary{background:var(--brand);color:#fff;box-shadow:0 1px #ffffff26 inset,0 1px 2px #0f1d1a2e}.btn-primary:hover:not(:disabled){background:var(--brand-600)}.btn-primary:active:not(:disabled){background:var(--brand-700)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--ink-1);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--surface-2)}.btn-ghost{background:transparent;color:var(--ink-2);border-color:transparent}.btn-ghost:hover{background:var(--surface-2)}.btn-danger{background:var(--red-50);color:var(--red);border-color:transparent}.btn-sm{height:36px;padding:0 12px;font-size:13px;border-radius:10px}.btn-icon{width:40px;height:40px;padding:0;border-radius:10px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;font-weight:500;color:var(--ink-2)}.field .err{font-size:12px;color:var(--red)}.input,.select-input,.textarea{width:100%;height:48px;padding:0 14px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);font-family:var(--font);font-size:15px;color:var(--ink-1);transition:border-color .15s,box-shadow .15s;outline:none}.input:focus,.select-input:focus,.textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-50)}.input.has-icon{padding-left:44px}.input.error{border-color:var(--red)}.input.error:focus{box-shadow:0 0 0 4px var(--red-50)}.textarea{height:auto;padding:12px 14px;min-height:80px;resize:vertical;line-height:1.4}.input-wrap{position:relative}.input-wrap>.lead-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--ink-4);pointer-events:none;display:flex}.input-wrap>.trail-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:0;width:36px;height:36px;border-radius:8px;color:var(--ink-3);cursor:pointer;display:flex;align-items:center;justify-content:center}.input-wrap>.trail-btn:hover{background:var(--surface-2)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px}.section-title{font-size:13px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin:0 0 10px}.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:600}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.badge-sched{background:var(--blue-50);color:var(--blue)}.badge-done{background:var(--green-50);color:var(--green)}.badge-cancel{background:var(--red-50);color:var(--red)}.badge-block{background:var(--surface-2);color:var(--ink-3)}.seg{display:flex;background:var(--surface-2);border-radius:12px;padding:3px;gap:2px}.seg button{flex:1;border:0;background:transparent;height:34px;border-radius:9px;font-size:13px;font-weight:600;color:var(--ink-3);cursor:pointer;transition:all .15s}.seg button.active{background:var(--surface);color:var(--ink-1);box-shadow:var(--shadow-sm)}.tabbar{flex:0 0 auto;height:78px;padding:6px 8px 22px;background:#fffffff5;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid var(--border);display:flex;justify-content:space-around;align-items:stretch;position:sticky;bottom:0;z-index:50}.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:0;cursor:pointer;color:var(--ink-4);font-size:10px;font-weight:500;padding:4px 2px;border-radius:10px;transition:color .15s}.tab.active{color:var(--brand)}.drawer-scrim{position:fixed;inset:0;background:#0f1d1a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .2s;z-index:100}.drawer-scrim.show{opacity:1;pointer-events:auto}.drawer{position:fixed;left:50%;bottom:0;transform:translate(-50%) translateY(100%);width:100%;max-width:min(430px,100%);background:var(--surface);border-radius:22px 22px 0 0;box-shadow:0 -10px 40px #0f1d1a24;transition:transform .28s cubic-bezier(.2,.8,.2,1);z-index:101;max-height:92vh;display:flex;flex-direction:column}.drawer.show{transform:translate(-50%) translateY(0)}.drawer-handle{width:36px;height:4px;background:var(--border-strong);border-radius:2px;margin:8px auto 0;flex-shrink:0}.drawer-head{padding:14px 20px 8px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.drawer-head h3{margin:0;font-size:18px;font-weight:700;letter-spacing:-.02em}.drawer-body{flex:1;overflow-y:auto;padding:8px 20px 20px}.drawer-foot{padding:14px 20px 22px;border-top:1px solid var(--border);display:flex;gap:10px;flex-shrink:0}.toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%) translateY(8px);background:var(--ink-1);color:#fff;padding:12px 16px;border-radius:12px;font-size:13px;font-weight:500;display:flex;align-items:center;gap:8px;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:200;max-width:min(320px,calc(100vw - 40px))}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.toast.error{background:var(--red)}.pro-avatar{border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.av-1{background:#cfe9df;color:#0a6650}.av-2{background:#dde4ff;color:#2543a8}.av-3{background:#f5dfd0;color:#8a4f1f}.av-4{background:#efeaff;color:#4f33b3}.pro-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-size:13px;font-weight:500;color:var(--ink-2);cursor:pointer;transition:all .15s;white-space:nowrap}.pro-chip.active{background:var(--ink-1);color:#fff;border-color:var(--ink-1)}.qa{display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:14px;background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;transition:all .15s}.qa:hover{background:var(--surface-2);border-color:var(--border-strong)}.qa-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--brand-50);color:var(--brand-700)}.qa-label{font-size:13px;font-weight:600;color:var(--ink-1);letter-spacing:-.005em}.ob-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px dashed var(--border)}.ob-row:last-child{border-bottom:0}.ob-check{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--border-strong);flex-shrink:0;display:flex;align-items:center;justify-content:center}.ob-row.done .ob-check{background:var(--brand);border-color:var(--brand);color:#fff}.ob-label{font-size:14px;color:var(--ink-1);flex:1}.ob-row.done .ob-label{color:var(--ink-4);text-decoration:line-through}.divider{height:1px;background:var(--border);margin:14px 0}.appt{position:absolute;left:4px;right:4px;border-radius:10px;padding:6px 8px;background:var(--brand-50);border-left:3px solid var(--brand);cursor:pointer;overflow:hidden;transition:box-shadow .15s}.appt:hover{box-shadow:var(--shadow)}.appt-time{font-size:10px;font-weight:600;color:var(--brand-700);letter-spacing:.01em}.appt-title{font-size:12px;font-weight:600;color:var(--ink-1);margin-top:1px;line-height:1.2}.appt-sub{font-size:10px;color:var(--ink-3);margin-top:1px}.appt.t-blue{background:#e8efff;border-left-color:#2563eb}.appt.t-blue .appt-time{color:#1d4ed8}.appt.t-amber{background:#fbf2e1;border-left-color:#b97309}.appt.t-amber .appt-time{color:#8a5407}.appt.t-purple{background:#efeaff;border-left-color:#6c4cdc}.appt.t-purple .appt-time{color:#4f33b3}.appt.t-block{background:repeating-linear-gradient(45deg,#eef1ef 0 6px,#e6ebe8 6px 12px);border-left:3px solid var(--ink-5);cursor:default}.appt.t-block .appt-title{color:var(--ink-3)}.appt.cancelled{background:var(--surface-2)!important;border-left-color:var(--ink-5)!important;opacity:.7;cursor:default}.appt.cancelled .appt-time{color:var(--ink-4)!important}.appt.cancelled .appt-title{color:var(--ink-4);text-decoration:line-through}.appt.cancelled .appt-sub{color:var(--ink-5)}.card.cancelled{background:var(--surface-2);border-color:var(--border)}.card.cancelled .cancel-name{color:var(--ink-4);text-decoration:line-through}.card.cancelled .cancel-sub{color:var(--ink-5)}.appt.completed{background:#e8f0fe!important;border-left-color:#1a73e8!important}.appt.completed .appt-time{color:#1557b0!important}.appt.completed .appt-title{color:#1c3c6e}.card.completed{background:#eef3fd;border-color:#a8c4f5}.card.completed .cancel-name{color:#1c3c6e}.card.completed .cancel-sub{color:#4a6fa5}.fab{position:absolute;right:18px;bottom:90px;width:52px;height:52px;border-radius:50%;background:var(--brand);color:#fff;border:0;cursor:pointer;box-shadow:0 8px 20px #0f8a6a59;display:flex;align-items:center;justify-content:center;z-index:20}.mini-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.mini-cal .dow{font-size:10px;font-weight:600;color:var(--ink-4);text-transform:uppercase;text-align:center;letter-spacing:.04em;padding:4px 0}.mini-cal .day{aspect-ratio:1;border:0;background:transparent;border-radius:50%;font-size:13px;font-weight:500;color:var(--ink-2);cursor:pointer;position:relative;display:flex;align-items:center;justify-content:center;font-family:var(--font)}.mini-cal .day:hover{background:var(--surface-2)}.mini-cal .day.muted{color:var(--ink-5)}.mini-cal .day.today{color:var(--brand);font-weight:700}.mini-cal .day.selected{background:var(--brand);color:#fff}.mini-cal .day.has-events:before{content:"";position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:3px;height:3px;border-radius:50%;background:currentColor}.pro-row{display:flex;gap:8px;overflow-x:auto;padding:4px 0;scrollbar-width:none}.pro-row::-webkit-scrollbar{display:none}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.fadeup{animation:fadeUp .3s ease both}@media(max-width:389px){.btn{padding:0 14px;font-size:14px}.btn-sm{padding:0 10px;font-size:12px}.seg button{font-size:12px}.tab{font-size:9px}.drawer-body{padding:8px 16px 16px}.drawer-foot{padding:12px 16px 20px}.drawer-head{padding:12px 16px 6px}.qa-label{font-size:12px}.badge{height:20px;font-size:10px;padding:0 6px}}@media(min-width:1024px){#root{justify-content:flex-start}}.web-shell{display:flex;width:100%;min-height:100vh}.web-main{flex:1;min-height:100vh;overflow-y:auto;background:var(--bg)}.sidebar{width:220px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar-logo{display:flex;align-items:center;gap:8px;padding:20px 20px 16px;border-bottom:1px solid var(--border)}.sidebar-brand{font-size:20px;font-weight:700;letter-spacing:-.04em;color:var(--ink-1)}.sidebar-nav{flex:1;padding:12px 10px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.sidebar-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);border:0;background:transparent;color:var(--ink-3);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s;width:100%;text-align:left}.sidebar-item:hover{background:var(--surface-2);color:var(--ink-1)}.sidebar-item.active{background:var(--brand-50);color:var(--brand);font-weight:600}.sidebar-footer{padding:12px 10px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:4px}.sidebar-user{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-sm)}.sidebar-avatar{width:32px;height:32px;border-radius:50%;background:var(--brand-100);color:var(--brand-700);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}.sidebar-user-info{display:flex;flex-direction:column;overflow:hidden;flex:1}.sidebar-user-email{font-size:12px;font-weight:500;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:11px;color:var(--ink-4);text-transform:uppercase;letter-spacing:.04em}.sidebar-logout{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-sm);border:0;background:transparent;color:var(--ink-3);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s;width:100%}.sidebar-logout:hover{background:var(--red-50);color:var(--red)}.page-root{display:flex;flex-direction:column;min-height:100vh;width:100%;max-width:430px;margin:0 auto;background:var(--bg);position:relative}.web-main .page-root{max-width:100%}.web-main .screen-scroll{padding-bottom:24px;padding-left:32px;padding-right:32px}.web-main .fab{bottom:24px}@media(min-width:1024px){.drawer{left:calc((100vw + 220px)/2);max-width:480px}.toast{left:calc((100vw + 220px)/2)}}
