:root{--primary: #057a7a;--primary-ink: #044450;--accent: #f98a1a;--accent-ink: #2b1600;--bg: #f4f6f8;--card: #ffffff;--muted: #f1f3f5;--border: #e4e7eb;--text: #191e26;--text-2: #3a4250;--text-muted: #5b6472;--success: #1d6e4c;--success-bg: #e3f4ec;--success-dot: #1f9d63;--warning: #8f4a05;--warning-bg: #fef0e1;--info: #1a5e99;--info-bg: #e5eff8;--danger: #b42318;--danger-bg: #fde8e7;--primary-tint: #e6f2f2;--radius: 10px;--radius-lg: 14px;--font: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display: "Nunito Sans", "DM Sans", system-ui, sans-serif;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.4;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer}a{color:var(--primary);text-decoration:none}h1,h2,h3{margin:0;font-family:var(--font-display);color:var(--primary-ink)}h1{font-size:20px;font-weight:800}h2{font-size:16px;font-weight:700;color:var(--text)}p{margin:0}.num{font-variant-numeric:tabular-nums}.muted{color:var(--text-muted)}.small{font-size:12px}.strong{font-weight:700}.text-2{color:var(--text-2)}.shell{height:100%;display:flex;flex-direction:column}.topbar{background:var(--card);border-bottom:1px solid var(--border);padding:calc(12px + var(--safe-top)) 16px 12px;display:flex;align-items:center;gap:8px;min-height:64px}.topbar .title{flex:1;min-width:0}.topbar .title h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .eyebrow{font-size:12px;color:var(--text-muted)}.iconbtn{width:44px;height:44px;border:0;background:transparent;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:var(--text);position:relative}.iconbtn:active{background:var(--muted)}.badge-dot{position:absolute;top:9px;right:9px;width:9px;height:9px;border-radius:999px;background:var(--accent);border:2px solid var(--card)}.content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px 16px calc(16px + var(--safe-bottom));display:flex;flex-direction:column;gap:12px}.content.no-tabs{padding-bottom:calc(24px + var(--safe-bottom))}.tabbar{background:var(--card);border-top:1px solid var(--border);display:grid;height:calc(64px + var(--safe-bottom));padding-bottom:var(--safe-bottom)}.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-muted);font-size:10px;font-weight:600;text-decoration:none}.tabbar a.active{color:var(--primary);font-weight:700}.tabbar .tab-badge{position:absolute;margin-left:18px;margin-top:-14px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}.tabbar .tab-icon{position:relative;display:flex}.clockpill{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 10px 0 8px;border-radius:999px;font-size:13px;font-weight:700;text-decoration:none;flex-shrink:0;border:0;background:var(--muted);color:var(--text-2)}.clockpill.on{background:var(--success-bg);color:var(--success)}.clockpill .ico{position:relative;display:flex}.clockpill .dot{position:absolute;right:-3px;top:-3px;width:9px;height:9px;border-radius:999px;background:var(--success-dot);border:2px solid var(--success-bg)}.clockpill.queued{background:var(--warning-bg);color:var(--warning)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;display:flex;flex-direction:column;gap:10px}.card.tight{padding:0;gap:0}.card.accent{border-color:var(--primary)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.row{display:flex;align-items:center;gap:12px}.row.between{justify-content:space-between}.col{display:flex;flex-direction:column;gap:2px;min-width:0}.grow{flex:1;min-width:0}.list>*{padding:12px 16px;border-bottom:1px solid var(--muted);display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none}.list>*:last-child{border-bottom:0}.list button{width:100%;text-align:left;background:transparent;border:0}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:10px;display:flex;flex-direction:column;gap:2px}.stat .v{font-size:20px;font-weight:700}.stat .l{font-size:12px;color:var(--text-muted);font-weight:600}.section-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:4px 4px 0}.pill{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.pill.success{background:var(--success-bg);color:var(--success)}.pill.warning{background:var(--warning-bg);color:var(--warning)}.pill.info{background:var(--info-bg);color:var(--info)}.pill.danger{background:var(--danger-bg);color:var(--danger)}.pill.neutral{background:var(--muted);color:var(--text-2)}.pill.outline{background:transparent;border:1px solid var(--border);color:var(--text-2)}.btn{height:48px;border-radius:8px;border:0;padding:0 16px;font-weight:700;font-size:16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%}.btn.primary{background:var(--primary);color:#fff}.btn.secondary{background:var(--card);color:var(--text);border:1px solid var(--border);font-weight:600}.btn.outline{background:var(--card);color:var(--primary);border:1px solid var(--primary)}.btn.danger{background:var(--card);color:var(--danger);border:1px solid var(--border);font-weight:600}.btn.sm{height:40px;font-size:14px}.btn.xs{height:32px;font-size:13px;padding:0 12px;width:auto}.btn:disabled{opacity:.55}.btn.link{background:transparent;color:var(--primary);width:auto;height:auto;padding:4px;font-size:14px}.clockbtn{width:176px;height:176px;border-radius:999px;border:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-weight:800;font-size:20px;font-family:var(--font-display);margin:8px auto;box-shadow:0 10px 30px #057a7a40}.clockbtn.in{background:var(--primary);color:#fff}.clockbtn.out{background:var(--card);color:var(--primary);border:3px solid var(--primary);box-shadow:none}.clockbtn small{font-size:12px;font-weight:600;font-family:var(--font);opacity:.9}.field{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}.field .hint{font-weight:400;color:var(--text-muted);font-size:12px}.input,select.input,textarea.input{width:100%;height:48px;border:1px solid var(--border);border-radius:8px;padding:0 12px;background:var(--card);font-size:16px;font-weight:400}textarea.input{height:auto;min-height:88px;padding:10px 12px;resize:none}.input:focus{outline:2px solid var(--primary);outline-offset:2px}.input.error{border-color:var(--danger)}.err{color:var(--danger);font-size:13px;font-weight:500}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--border);background:var(--card);color:var(--text-2);font-size:13px;font-weight:600}.chip.on{background:var(--primary);color:#fff;border-color:var(--primary)}.switch{width:48px;height:28px;border-radius:999px;background:#cfd4da;border:0;position:relative;flex-shrink:0;transition:background .15s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:999px;background:#fff;transition:left .15s;box-shadow:0 1px 3px #00000040}.switch.on{background:var(--primary)}.switch.on:after{left:23px}.switch:disabled{opacity:.5}.rating{display:flex;gap:6px}.rating button{flex:1;height:44px;border-radius:8px;border:1px solid var(--border);background:var(--card);font-weight:700;font-size:15px}.rating button.on{background:var(--primary);color:#fff;border-color:var(--primary)}.banner{border-radius:var(--radius);padding:10px 12px;font-size:13px;display:flex;align-items:center;gap:10px}.banner.warning{background:var(--warning-bg);color:var(--warning)}.banner.info{background:var(--info-bg);color:var(--info)}.banner.danger{background:var(--danger-bg);color:var(--danger)}.banner.success{background:var(--success-bg);color:var(--success)}.banner a,.banner button.link{color:inherit;font-weight:700;text-decoration:underline}.avatar{width:40px;height:40px;border-radius:999px;background:var(--primary-tint);color:var(--primary-ink);display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.lg{width:72px;height:72px;font-size:24px}.avatar.sm{width:32px;height:32px;font-size:12px}.sheet-backdrop{position:fixed;inset:0;background:#04445073;display:flex;align-items:flex-end;z-index:50}.sheet{background:var(--card);width:100%;max-height:92%;border-radius:18px 18px 0 0;padding:12px 16px calc(20px + var(--safe-bottom));display:flex;flex-direction:column;gap:12px;overflow-y:auto}.sheet .grab{width:40px;height:4px;border-radius:999px;background:var(--border);margin:0 auto 4px}.sheet .sheet-head{display:flex;align-items:center;justify-content:space-between}.toasts{position:fixed;left:16px;right:16px;bottom:calc(80px + var(--safe-bottom));display:flex;flex-direction:column;gap:8px;z-index:60;pointer-events:none}.toast{background:var(--primary-ink);color:#fff;border-radius:10px;padding:12px 14px;font-size:14px;font-weight:500;box-shadow:0 8px 24px #0003;pointer-events:auto}.toast.error{background:var(--danger)}.toast.success{background:var(--success)}.bubble{max-width:80%;padding:10px 12px;border-radius:14px;font-size:15px;line-height:1.35}.bubble.mine{background:var(--primary);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}.bubble.theirs{background:var(--card);border:1px solid var(--border);align-self:flex-start;border-bottom-left-radius:4px}.bubble .meta{font-size:11px;opacity:.75;margin-top:4px}.composer{display:flex;gap:8px;padding:8px 12px calc(8px + var(--safe-bottom));background:var(--card);border-top:1px solid var(--border);align-items:flex-end}.composer textarea{flex:1;min-height:44px;max-height:120px}.composer .send{width:44px;height:44px;border-radius:999px;background:var(--primary);color:#fff;border:0;display:flex;align-items:center;justify-content:center;flex-shrink:0}.progress{height:8px;background:var(--muted);border-radius:999px;overflow:hidden}.progress>div{height:100%;background:var(--primary);border-radius:999px}.skeleton{background:linear-gradient(90deg,var(--muted) 25%,#e9ecef 50%,var(--muted) 75%);background-size:200% 100%;animation:shimmer 1.2s infinite;border-radius:8px;min-height:16px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.center{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;padding:32px 16px;color:var(--text-muted)}.timeline{display:flex;flex-direction:column;gap:0}.timeline>div{display:flex;gap:12px;padding:8px 0;align-items:center}.timeline .t{width:64px;font-weight:600;color:var(--text-2)}.timeline .d{width:10px;height:10px;border-radius:999px;background:var(--primary);flex-shrink:0}.timeline .d.out{background:var(--text-muted)}.timeline .d.queued{background:var(--accent)}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center;font-size:13px}.calendar .dow{font-size:11px;color:var(--text-muted);font-weight:600}.calendar button{height:38px;border-radius:8px;border:0;background:transparent;font-weight:600}.calendar button.in{background:var(--primary-tint);color:var(--primary-ink)}.calendar button.edge{background:var(--primary);color:#fff}.calendar button.off{color:#b3b9c2}.calendar button.hol{color:var(--warning)}
