:root{--font-sans: "Geist", system-ui, sans-serif;--bg: #F4F0F0;--surface: #FFFFFF;--subtle: #F0EAE9;--chip: #BBD7C7;--divider: #EDE6E5;--border: #E3DCDB;--border-strong: #CFC6C5;--text: #10241B;--text-soft: #33463D;--muted: #5B6B63;--header: #0A3D2B;--header-2: #125238;--header-border: #285E49;--header-muted: #CFE3D8;--on-header: #FFFFFF;--primary: #0A6E4B;--on-primary: #FFFFFF;--mint: #78CFA2;--on-mint: #08241A;--solid: #10241B;--on-solid: #FFFFFF;--accent: #0A6E4B;--success-bg: #DDEFE4;--success-text: #0A5E40;--ai-bg: #F6E1DC;--ai-border: #E9C3BA;--ai-text: #7A3B2E;--info-bg: #E3ECF7;--info-border: #BDD0EA;--info-text: #23477E;--info-strong: #6B8FC7;--warn-bg: #FBEBC4;--warn-border: #EBCF8A;--warn-text: #6B4A00;--scrim: rgba(16, 36, 27, .55);--mono: "Geist Mono", ui-monospace, monospace}:root[data-theme=dark]{--bg: #111413;--surface: #191D1B;--subtle: #212624;--chip: #25332B;--divider: #262B29;--border: #2C322F;--border-strong: #3A423E;--text: #E9EDEB;--text-soft: #C5CCC8;--muted: #9DA7A2;--header: #15251E;--header-2: #22362D;--header-border: #2F463B;--header-muted: #A9B8B0;--on-header: #FFFFFF;--primary: #7FD3A8;--on-primary: #0A3D2B;--mint: #7FD3A8;--on-mint: #0A3D2B;--solid: #E9EDEB;--on-solid: #111413;--accent: #6CCB9C;--success-bg: #1E3328;--success-text: #9FDDBB;--ai-bg: #3A2723;--ai-border: #5A3B34;--ai-text: #F0C4BA;--info-bg: #1C2636;--info-border: #33476A;--info-text: #AFC6EE;--info-strong: #6B8FC7;--warn-bg: #352B12;--warn-border: #5A4A1E;--warn-text: #EBCB7A;--scrim: rgba(0, 0, 0, .6);--mono: "Geist Mono", ui-monospace, monospace}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #111413;--surface: #191D1B;--subtle: #212624;--chip: #25332B;--divider: #262B29;--border: #2C322F;--border-strong: #3A423E;--text: #E9EDEB;--text-soft: #C5CCC8;--muted: #9DA7A2;--header: #15251E;--header-2: #22362D;--header-border: #2F463B;--header-muted: #A9B8B0;--on-header: #FFFFFF;--primary: #7FD3A8;--on-primary: #0A3D2B;--mint: #7FD3A8;--on-mint: #0A3D2B;--solid: #E9EDEB;--on-solid: #111413;--accent: #6CCB9C;--success-bg: #1E3328;--success-text: #9FDDBB;--ai-bg: #3A2723;--ai-border: #5A3B34;--ai-text: #F0C4BA;--info-bg: #1C2636;--info-border: #33476A;--info-text: #AFC6EE;--info-strong: #6B8FC7;--warn-bg: #352B12;--warn-border: #5A4A1E;--warn-text: #EBCB7A;--scrim: rgba(0, 0, 0, .6);--mono: "Geist Mono", ui-monospace, monospace}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:14px;line-height:1.4;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none;font-weight:600}a:hover{color:var(--text)}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{margin:0}h2{font-size:15px;font-weight:700}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.soft{color:var(--text-soft)}.small{font-size:12px}.strong{font-weight:700}.right{text-align:right}.nowrap{white-space:nowrap}.warn-text{color:var(--warn-text)}.ai-text{color:var(--ai-text)}.success-text{color:var(--success-text)}.row{display:flex;gap:10px;align-items:center}.col{display:flex;flex-direction:column;gap:10px}.wrap{flex-wrap:wrap}.spread{justify-content:space-between}.grow{flex:1 1 0;min-width:0}.gap-lg{gap:14px}.gap-sm{gap:6px}.stack{display:flex;flex-direction:column;gap:20px}.split{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start}.split>*{flex:1 1 340px;min-width:0}.split>.wide{flex:1.6 1 520px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.admin{min-height:100vh;display:flex;flex-wrap:wrap;align-items:stretch}.sidebar{flex:0 0 220px;background:var(--header);color:var(--on-header);padding:24px 16px;display:flex;flex-direction:column;gap:4px}.sidebar .logo{width:150px;height:auto;margin:0 8px 20px}.sidebar a{min-height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-radius:10px;font-size:14px;font-weight:500;color:var(--on-header)}.sidebar a:hover{background:var(--header-2);color:var(--on-header)}.sidebar a.active{background:var(--header-2);font-weight:700}.sidebar .foot{margin-top:auto;padding-top:16px;display:flex;flex-direction:column;gap:6px}.sidebar .foot button{min-height:40px;border-radius:10px;border:1px solid var(--header-border);background:transparent;color:var(--header-muted);font-size:13px;font-weight:600;cursor:pointer}.badge{font-size:12px;font-weight:700;background:var(--mint);color:var(--on-mint);padding:2px 8px;border-radius:999px}.main{flex:999 1 560px;min-width:0;padding:28px 32px 48px}.main>.stack{max-width:1180px}@media(max-width:820px){.sidebar{flex:1 1 100%;flex-direction:row;flex-wrap:wrap;padding:12px;gap:4px}.sidebar .logo{width:96px;margin:0 8px 0 0}.sidebar a{min-height:40px;padding:0 10px;font-size:13px}.sidebar .foot{margin-top:0;padding-top:0;flex-direction:row}.main{padding:20px 16px 40px}}.page-head{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center}.page-head .eyebrow{font-size:13px;color:var(--muted)}.title{font-size:36px;font-weight:700;text-transform:uppercase;line-height:1.05}@media(max-width:600px){.title{font-size:28px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:12px}.card.tight{gap:8px}.card-head{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:baseline}.card.emph{background:var(--header);color:var(--on-header);border-color:var(--header)}.card.emph .muted,.card.emph .label{color:var(--header-muted)}.inset{padding:12px;border-radius:12px;background:var(--subtle);display:flex;flex-direction:column;gap:8px}.label{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.kpi .value{font-size:38px;font-weight:700;line-height:1}.big{font-size:34px;font-weight:700;line-height:1}.divided>*+*{border-top:1px solid var(--divider)}.list-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:10px 0}button.list-row.plain{width:100%;background:none;border:none;border-radius:10px;padding:10px;color:inherit;font:inherit;cursor:pointer}button.list-row.plain:hover{background:var(--subtle)}button.list-row.selected{background:var(--subtle);box-shadow:inset 3px 0 0 var(--accent)}.kv{display:flex;justify-content:space-between;gap:10px}.kv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.kv-grid>div{display:flex;flex-direction:column;gap:2px}.progress{height:8px;border-radius:4px;background:var(--border);overflow:hidden}.progress>div{height:8px;background:var(--header)}:root[data-theme=dark] .progress>div{background:var(--mint)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .progress>div{background:var(--mint)}}.btn{min-height:44px;padding:0 16px;border-radius:12px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-size:14px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--primary);color:var(--on-primary);border-color:transparent;font-weight:700}.btn.solid{background:var(--solid);color:var(--on-solid);border-color:transparent}.btn.mint{background:var(--mint);color:var(--on-mint);border-color:transparent;font-weight:700}.btn.quiet{color:var(--muted)}.btn.ghost{background:transparent;border-color:transparent;color:var(--accent);padding:0 8px}.btn.sm{min-height:36px;padding:0 12px;border-radius:9px;font-size:13px}.btn.xs{min-height:30px;padding:0 10px;border-radius:8px;font-size:12px}.btn.icon{width:36px;padding:0}.btn.block{width:100%}.btn.tall{min-height:56px;border-radius:14px;font-size:16px}a.btn{text-decoration:none}.seg{display:inline-flex;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:4px;gap:2px;flex-wrap:wrap}.seg button{min-height:36px;padding:0 14px;border-radius:9px;border:none;background:transparent;color:var(--muted);font-size:13px;font-weight:500;cursor:pointer}.seg button.on{background:var(--solid);color:var(--on-solid);font-weight:600}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip-btn{min-height:36px;padding:0 14px;border-radius:18px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-size:13px;font-weight:600;cursor:pointer}.chip-btn.on{background:var(--solid);color:var(--on-solid);border-color:transparent}.pill{display:inline-block;font-size:11px;font-weight:700;padding:4px 8px;border-radius:6px;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;background:var(--subtle);color:var(--text)}.pill.ok{background:var(--chip);color:var(--success-text)}.pill.success{background:var(--success-bg);color:var(--success-text)}.pill.warn{background:var(--warn-bg);color:var(--warn-text)}.pill.ai{background:var(--ai-bg);color:var(--ai-text)}.pill.info{background:var(--info-bg);color:var(--info-text)}.pill.muted{background:var(--subtle);color:var(--muted)}.chip{display:inline-block;font-size:12px;font-weight:600;padding:3px 8px;border-radius:6px;background:var(--chip);color:var(--text)}.banner{border-radius:14px;padding:14px 16px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;border:1px solid}.banner.info{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}.banner.warn{background:var(--warn-bg);border-color:var(--warn-border);color:var(--warn-text)}.banner.ai{background:var(--ai-bg);border-color:var(--ai-border);color:var(--ai-text)}.banner .btn{color:var(--text)}.error{background:var(--warn-bg);color:var(--warn-text);border:1px solid var(--warn-border);border-radius:12px;padding:10px 14px;font-size:13px}.empty{color:var(--muted);font-size:13px;padding:8px 0}.table-wrap{overflow-x:auto}.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl th{text-align:left;font-size:12px;font-weight:600;color:var(--muted);padding:8px 6px;white-space:nowrap}.tbl td{padding:10px 6px;border-top:1px solid var(--divider);vertical-align:middle}.tbl tr.sel td{background:var(--subtle)}.tbl tr.click{cursor:pointer}.tbl tr.click:hover td{background:var(--subtle)}.tbl .num{font-family:var(--mono);white-space:nowrap}.field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:var(--muted)}.input,.field input:not([type=checkbox]),.field select,.field textarea{min-height:44px;border-radius:10px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);padding:0 12px;font-size:14px;font-weight:500;width:100%}.field textarea{padding:10px 12px;resize:vertical}.input:focus,.field input:focus,.field select:focus,.field textarea:focus,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--text);font-weight:500;cursor:pointer}.check input{width:20px;height:20px;accent-color:var(--accent);margin:0;flex-shrink:0}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.scrim{position:fixed;inset:0;background:var(--scrim);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal{background:var(--surface);color:var(--text);border-radius:18px;padding:20px;width:100%;max-width:520px;max-height:90vh;overflow:auto;display:flex;flex-direction:column;gap:14px}.modal.wide{max-width:760px}.modal h2{font-size:18px}.week{display:grid;grid-template-columns:150px repeat(6,minmax(120px,1fr));gap:8px;min-width:900px}.week .head{font-size:12px;font-weight:600;color:var(--muted);padding:0 4px}.week .head.today{color:var(--text);font-weight:700}.cell{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:4px;min-height:76px;cursor:pointer;text-align:left}.cell.today{background:var(--success-bg);border-color:var(--text)}.cell.rain{background:var(--info-bg);border-color:var(--info-border)}.cell.off{background:var(--subtle);cursor:default}.cell.warn{border-color:var(--warn-border)}.cell .n{font-size:15px;font-weight:700}.stop{display:flex;gap:10px;align-items:center;padding:10px;border-radius:12px;border:1px solid var(--border);background:var(--surface)}.stop.done{background:var(--subtle)}.stop.dragging{opacity:.5}.stop.over{border-color:var(--accent)}.stop .handle{cursor:grab;color:var(--muted);border:none;background:none;font-size:16px;padding:4px}.stop .num{width:28px;height:28px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background:var(--primary);color:var(--on-primary);flex-shrink:0}.stop.done .num{background:var(--solid);color:var(--on-solid)}.map{width:100%;height:auto;border-radius:12px;background:var(--subtle)}.bars{display:flex;align-items:flex-end;gap:10px;height:200px;padding-top:18px}.bars .bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;height:100%;font-size:11px;color:var(--muted);min-width:0}.bars .bar>div{width:100%;max-width:48px;border-radius:6px 6px 0 0;background:var(--accent)}.bars .bar>div.snow{background:var(--info-strong)}.hbar{height:8px;border-radius:4px;background:var(--subtle);overflow:hidden}.hbar>div{height:8px;background:var(--accent)}.bubble{max-width:80%;padding:10px 12px;border-radius:14px;font-size:14px;white-space:pre-wrap}.bubble.in{align-self:flex-start;background:var(--subtle);border-radius:14px 14px 14px 4px}.bubble.out{align-self:flex-end;background:var(--solid);color:var(--on-solid);border-radius:14px 14px 4px}.quote{margin:0;font-size:14px;line-height:1.4;background:var(--subtle);padding:10px 12px;border-radius:14px 14px 14px 4px;white-space:pre-wrap}.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--header)}.auth .card{width:100%;max-width:400px;padding:24px;gap:16px}.auth .logo{width:140px;align-self:center}.portal{min-height:100vh;display:flex;flex-direction:column;max-width:560px;margin:0 auto;background:var(--bg)}.portal-head{background:var(--header);color:var(--on-header);padding:20px 20px 22px;display:flex;flex-direction:column;gap:12px}.portal-head .muted{color:var(--header-muted)}.portal-head a{color:var(--header-muted);font-size:13px}.portal-head .big{font-size:28px}.portal-head .icon-btn{width:44px;height:44px;border-radius:22px;border:1px solid var(--header-border);background:transparent;color:var(--on-header);cursor:pointer;font-size:12px;font-weight:700}.portal-main{flex:1;padding:16px;display:flex;flex-direction:column;gap:12px}.portal-nav{position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:6px 8px 16px}.portal-nav a{height:48px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;color:var(--muted)}.portal-nav a.active{font-weight:700;color:var(--text)}.section-label{margin:4px 4px 0;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.visit-row{background:var(--surface);border-radius:14px;border:1px solid var(--border);padding:10px;display:flex;gap:12px;align-items:center}.thumb{width:64px;height:64px;border-radius:10px;background:var(--chip);flex-shrink:0;object-fit:cover}.photos{display:flex;gap:8px;flex-wrap:wrap}.photos img{width:96px;height:96px;border-radius:10px;object-fit:cover;background:var(--subtle)}.photos .ph{width:96px;height:96px;border-radius:10px;background:var(--chip)}.logo-dark{display:none}:root[data-theme=dark] .logo-light{display:none}:root[data-theme=dark] .logo-dark{display:block}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .logo-light{display:none}:root:not([data-theme=light]) .logo-dark{display:block}}.menu{position:absolute;right:0;top:50px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:6px;display:flex;flex-direction:column;min-width:180px;z-index:20}.menu button{min-height:44px;border:none;background:transparent;text-align:left;padding:0 12px;border-radius:8px;cursor:pointer;font-weight:600;color:var(--text)}.menu button:hover{background:var(--subtle)}
