:root{color-scheme:light dark;--gutter: 16px;--r-plate: 6px;--bg: #E9ECEF;--surface: #FFFFFF;--ink: #15191E;--ink-2: #4A535D;--line: #CBD1D8;--line-strong: #8C96A1;--plate: #262C33;--plate-ink: #FFFFFF;--sign: #FFC20E;--sign-edge: #E0A800;--go: #007A3D;--go-soft: #E3F4EA;--go-ink: #00582C;--stop: #C4122F;--stop-soft: #FBE7EA;--on-stop: #FFFFFF;--link: #0A58CA}@media (prefers-color-scheme: dark){:root{--bg: #121519;--surface: #1D2228;--ink: #EEF1F4;--ink-2: #A7B0BA;--line: #333B44;--line-strong: #5E6873;--plate: #2E363F;--plate-ink: #FFFFFF;--sign: #E6AD00;--sign-edge: #E6AD00;--go: #4CD38A;--go-soft: #13301F;--go-ink: #7BE3A9;--stop: #FF7B7B;--stop-soft: #3A1A1D;--on-stop: #1A0003;--link: #8AB4FF}}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,PingFang HK,PingFang TC,Noto Sans HK,Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif;font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}a{color:var(--link)}h1,h2,p{margin:0}.num{font-variant-numeric:tabular-nums}.icon{width:24px;height:24px;flex:none}:focus-visible{outline:3px solid var(--link);outline-offset:2px}#app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.top{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line);padding:calc(env(safe-area-inset-top) + 8px) var(--gutter) 8px}.clocks{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.clock{display:flex;align-items:baseline;gap:8px;min-width:0}.clock-local b{font-size:34px;font-weight:800;letter-spacing:-.02em;line-height:1.1}.clock-home b{font-size:22px;font-weight:700}.clock-place{font-size:16px;font-weight:600;color:var(--ink-2)}.live-dot{align-self:center;width:10px;height:10px;border-radius:50%;background:var(--go);animation:live 2.4s ease-in-out infinite}@keyframes live{50%{opacity:.25}}.sync{display:flex;align-items:center;gap:8px;margin-top:2px;font-size:16px;color:var(--ink-2)}.sync:before{content:"";width:10px;height:10px;border-radius:2px;flex:none;background:var(--go)}.sync-preview:before{background:var(--sign)}.sync-pending:before{background:var(--sign)}.sync-offline:before{background:var(--stop)}.main{flex:1;width:100%;max-width:560px;margin:0 auto;padding:12px var(--gutter) calc(96px + env(safe-area-inset-bottom))}.no-nav .main{padding-bottom:calc(32px + env(safe-area-inset-bottom))}.tabs{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;background:var(--surface);border-top:1px solid var(--line);padding:6px 8px calc(6px + env(safe-area-inset-bottom))}.tab{min-height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:8px;color:var(--ink-2);text-decoration:none;font-size:16px;font-weight:700}.tab[aria-current=page]{color:var(--ink);box-shadow:inset 0 3px 0 var(--ink)}.tab-add .icon{width:32px;height:32px;padding:4px;border-radius:50%;background:var(--sign);color:#000}.tab:active{background:var(--bg)}.notice{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:10px 12px;border-radius:var(--r-plate);font-weight:700}.notice-ok{background:var(--go-soft);color:var(--go-ink);border:2px solid var(--go)}.notice-warn{background:var(--stop-soft);color:var(--stop);border:2px solid var(--stop)}.section-title{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:800;margin:24px 0 4px}.section-hint{font-size:16px;color:var(--ink-2)}.empty{font-size:16px;color:var(--ink-2);margin:8px 0 12px}.page-title{font-size:28px;font-weight:800;margin:8px 0 12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:8px 14px;border:2px solid var(--ink);border-radius:var(--r-plate);background:var(--surface);color:var(--ink);font:inherit;font-size:17px;font-weight:700;line-height:1.3;text-align:center;text-decoration:none;cursor:pointer;touch-action:manipulation}.btn:active{transform:translateY(2px);filter:brightness(.9)}.btn .icon{width:22px;height:22px}.btn-wide{width:100%}.btn-primary{background:var(--sign);color:#000;border-color:#000}.btn-ghost{background:transparent;border-color:var(--line-strong)}.btn-danger{background:transparent;color:var(--stop);border-color:var(--stop)}.btn-danger-solid{background:var(--stop);color:var(--on-stop);border-color:var(--stop)}.btn-big{min-height:64px;font-size:22px}.btn-copy{min-width:96px}.btn-copy.is-done{color:var(--go);border-color:var(--go)}.btn-copy.is-fail{color:var(--stop);border-color:var(--stop)}.btn-call{color:var(--go);border-color:var(--go)}.btn-link{justify-content:flex-start;color:var(--link);border-color:var(--line-strong);text-align:left}.trip-progress{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:700;color:var(--ink-2)}.trip-progress .icon{width:20px;height:20px}.next{margin:10px 0 18px;padding:16px;background:var(--sign);color:#000;border:2px solid var(--sign-edge);border-radius:var(--r-plate)}.next-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.next-label{font-size:16px;font-weight:800}.next-kind{display:inline-flex;align-items:center;gap:6px;padding:4px 12px 4px 8px;border-radius:999px;background:#000;color:var(--sign);font-size:16px;font-weight:700}.next-kind .icon{width:20px;height:20px}.next-title{margin-top:8px;font-size:26px;font-weight:800;line-height:1.25;overflow-wrap:anywhere}.next-timing{margin-top:8px}.next-count{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;font-size:20px;font-weight:800}.next-count strong{font-size:40px;font-weight:800;line-height:1.1;letter-spacing:-.02em}.next-when{margin-top:2px;font-size:20px;font-weight:700}.next-home{margin-left:12px;font-size:16px;font-weight:600;color:#000000b8}.bar{height:10px;margin:10px 0 6px;border-radius:999px;background:#0000002e;overflow:hidden}.bar span{display:block;height:100%;background:#000}.next-facts{display:grid;gap:10px;margin:14px 0 0;padding-top:12px;border-top:2px solid #000}.fact{display:grid;grid-template-columns:84px minmax(0,1fr);gap:8px;align-items:start}.fact dt{display:flex;align-items:center;gap:4px;font-size:16px;font-weight:800}.fact dt .icon{width:20px;height:20px}.fact dd{margin:0;font-size:17px;font-weight:600;overflow-wrap:anywhere}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.chips li{padding:1px 10px;border:2px solid #000;border-radius:999px;font-size:16px;font-weight:600}.btn-plate{width:100%;margin-top:16px;background:#000;color:var(--sign);border-color:#000}.next-quiet{background:var(--surface);color:var(--ink);border-color:var(--line)}.next-quiet .next-title{font-size:22px}.next-later{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;margin-top:6px;color:var(--ink);font-size:17px}.next-later-remind{display:flex;align-items:flex-start;gap:8px;margin-top:8px}.next-later-remind .icon{width:20px;height:20px;margin-top:4px}.next-later-remind .remind-list{margin:0}.next-quiet .btn{margin-top:12px}.mavis{margin:0 0 18px;padding:12px 14px 6px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-left:6px solid var(--sign-edge);border-radius:var(--r-plate)}.mavis-title{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:800}.mavis-title .icon{width:30px;height:30px;padding:4px;border-radius:50%;background:var(--sign);color:#000}.mavis-hint{margin-top:2px;font-size:16px;color:var(--ink-2)}.mavis-list{margin:6px 0 0;padding:0;list-style:none}.mavis-list li+li{border-top:1px solid var(--line)}.mavis-tip{display:flex;align-items:center;gap:10px;min-height:48px;padding:8px 0;color:inherit;text-decoration:none;font-size:17px;font-weight:600;line-height:1.4}.mavis-tip:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--sign-edge);flex:none}.mavis-tip .icon{width:22px;height:22px;color:var(--ink-2)}.mavis-tip.is-link:active{background:var(--bg)}.mavis-text{flex:1;min-width:0;overflow-wrap:anywhere}.mavis-item{display:block;font-size:16px;font-weight:500;color:var(--ink-2)}.mavis-more{margin:4px 0 8px}.mavis-item-box{margin:16px 0 0}.days-wrap{margin:4px 0 20px}.days-wrap .section-hint{margin-bottom:8px}.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.day{min-height:66px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid transparent;border-radius:var(--r-plate);background:var(--surface);color:var(--ink);text-decoration:none}.day-wd{font-size:16px;line-height:1.2;color:var(--ink-2)}.day-n{font-size:20px;font-weight:800;line-height:1.2}.day-n.is-month{font-size:16px}.day-flag{width:16px;height:16px}.day.is-past{background:transparent;border-color:var(--line)}.day.is-past .day-n{color:var(--ink-2)}.day.is-today{background:var(--sign);color:#000}.day.is-today .day-wd{color:#000}.day.is-selected{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.day-plan{margin-bottom:8px;padding:4px 12px 12px;background:var(--surface);border-radius:var(--r-plate)}.day-title{display:flex;align-items:center;gap:8px;margin:12px 0 8px;font-size:22px;font-weight:800}.tag{padding:0 8px;border-radius:4px;background:var(--sign);color:#000;font-size:16px}.day-count{margin-left:auto;font-size:16px;font-weight:600;color:var(--ink-2)}.day-plan>.btn{margin-top:12px}.timeline{margin:0;padding:0;list-style:none}.timeline>li{position:relative}.timeline>li:before{content:"";position:absolute;left:92px;top:0;bottom:0;width:4px;background:var(--line)}.timeline>li:first-child:before{top:26px}.timeline>li:last-child:before{bottom:auto;height:26px}.timeline>li:only-child:before{display:none}.row{position:relative;display:grid;grid-template-columns:64px 40px minmax(0,1fr);column-gap:10px;align-items:start;min-height:56px;padding:6px 0;color:inherit;text-decoration:none}.row:active{background:var(--bg)}.row-when{padding-top:7px;text-align:right;font-size:20px;font-weight:800;line-height:1.3}.row-stop{position:relative;z-index:1;width:40px;height:40px;display:grid;place-items:center;border:3px solid var(--ink);border-radius:50%;background:var(--surface);color:var(--ink)}.row-stop .icon{width:22px;height:22px}.row-what{display:flex;flex-direction:column;gap:2px;min-width:0;padding:7px 0 4px}.row-title{font-size:18px;font-weight:700;line-height:1.35;overflow-wrap:anywhere}.row-sub{font-size:16px;color:var(--ink-2);overflow-wrap:anywhere}.row-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:16px;color:var(--ink-2)}.row-status{font-weight:700;color:var(--stop)}.row.is-past .row-stop{border-color:var(--line-strong);color:var(--ink-2)}.row.is-past .row-when,.row.is-past .row-title{color:var(--ink-2)}.row.is-current .row-stop{background:var(--sign);border-color:#000;color:#000}.row.is-allday .row-stop,.row.is-optional .row-stop{border-style:dashed}.tag-optional{display:inline-block;padding:0 8px;border:2px dashed currentColor;border-radius:4px;color:var(--ink);font-size:16px;font-weight:700}.status-cancelled .row-title{text-decoration:line-through}.now-marker{position:relative;height:26px}.now-marker:after{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:var(--ink)}.now-marker span{position:absolute;left:0;top:50%;z-index:2;transform:translateY(-50%);padding:0 10px;border-radius:4px;background:var(--sign);color:#000;font-size:16px;font-weight:800}.badge{display:inline-flex;align-items:center;gap:4px;padding:0 6px;border:2px solid currentColor;border-radius:4px;color:var(--stop);font-size:16px;font-weight:700}.badge .icon{width:16px;height:16px}.maybe-wrap{margin:8px 0 16px}.maybe-list{display:grid;gap:10px;margin:10px 0 0;padding:0;list-style:none}.maybe{padding:10px 12px 12px;border:2px dashed var(--line-strong);border-radius:var(--r-plate)}.maybe-main{display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:10px;align-items:start;color:inherit;text-decoration:none}.maybe-main .row-stop{border-style:dashed}.maybe-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.maybe .form-error{margin-top:8px}.maybe-folded{display:flex;align-items:center;gap:8px;min-height:48px;margin-top:8px;padding:8px 12px;border:1px dashed var(--line-strong);border-radius:var(--r-plate);color:var(--ink-2);font-size:16px;text-decoration:none;overflow-wrap:anywhere}.maybe-folded .icon{width:20px;height:20px;color:var(--go)}.unsched{margin-bottom:16px}.plain-list{display:grid;gap:8px;margin:10px 0 0;padding:0;list-style:none}.plain-list .row{grid-template-columns:40px minmax(0,1fr);padding:8px 12px;background:var(--surface);border-radius:var(--r-plate)}.bar-actions{display:flex;justify-content:space-between;gap:8px;margin:2px 0 6px}.kind-chip{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:16px;font-weight:700;color:var(--ink-2)}.detail-title{margin:4px 0 10px;font-size:28px;font-weight:800;line-height:1.25;overflow-wrap:anywhere}.status-chip{display:inline-block;margin-bottom:8px;padding:0 8px;border-radius:4px;background:var(--stop);color:var(--on-stop);font-weight:700}.when-day{font-size:18px;font-weight:700}.when-time{font-size:40px;font-weight:800;line-height:1.15;letter-spacing:-.02em}.when-zone{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:2px;font-size:16px;color:var(--ink-2)}.detail-when{font-size:18px;font-weight:700}.route{padding:12px;background:var(--surface);border-radius:var(--r-plate)}.route-row{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);gap:8px;align-items:start}.route-arrow{padding-top:6px}.route-code{font-size:30px;font-weight:800;line-height:1.15;overflow-wrap:anywhere}.route-name{font-size:16px;color:var(--ink-2);overflow-wrap:anywhere}.route-time{margin-top:6px;font-size:28px;font-weight:800}.route-zone,.route-day,.route-home{font-size:16px;color:var(--ink-2)}.route-dur{margin-top:10px;padding-top:8px;border-top:1px solid var(--line);font-weight:700}.cal-note{margin-top:14px;padding:10px 12px;border-left:4px solid var(--stop);background:var(--surface);border-radius:0 var(--r-plate) var(--r-plate) 0}.cal-note .badge{display:inline-flex}.cal-hint{margin-top:6px;font-size:16px}.detail-section>.section-title{margin-top:22px;padding-top:12px;border-top:2px solid var(--ink)}.place-name{font-size:20px;font-weight:700;overflow-wrap:anywhere}.place-address{margin-top:4px;font-size:18px;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.place-actions{display:grid;gap:8px;margin-top:12px}.map-box{margin:12px 0 0}.map-box iframe{display:block;width:100%;height:200px;border:0;border-radius:var(--r-plate);background:var(--line)}.map-box figcaption{margin-top:4px}.map-offline{padding:10px 12px;border:2px dashed var(--line-strong);border-radius:var(--r-plate);font-size:16px;color:var(--ink-2)}.attachments{display:grid;gap:10px;margin:8px 0 0;padding:0;list-style:none}.attachment{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-plate);background:var(--surface)}.attachment-title{display:flex;align-items:flex-start;gap:8px;font-size:18px;overflow-wrap:anywhere}.attachment-meta{font-size:16px;color:var(--ink-2);overflow-wrap:anywhere}.attachment-excerpt{padding:8px 10px;border-left:4px solid var(--line-strong);background:var(--bg);white-space:pre-wrap;overflow-wrap:anywhere}.attachment .btn{margin-top:4px}.optional-note{display:grid;gap:6px;justify-items:start;margin:0 0 12px}.btn-driver{background:var(--sign);color:#000;border-color:#000}.remind-list{display:grid;gap:4px;margin:8px 0 0;padding:0;list-style:none}.remind-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 10px;overflow-wrap:anywhere}.remind-list b{font-size:20px;font-weight:800}.next-facts .remind-list{margin:0}.next-facts .remind-list b{font-size:18px}.steps{display:grid;gap:10px;margin:8px 0 0;padding:0;list-style:none;counter-reset:step}.steps li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;counter-increment:step;overflow-wrap:anywhere}.steps li:before{content:counter(step);width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:var(--bg);font-size:16px;font-weight:800}.checklist{display:grid;gap:6px;margin:8px 0 0;padding:0;list-style:none}.checklist li{display:flex;align-items:flex-start;gap:8px;overflow-wrap:anywhere}.checklist .icon{margin-top:1px;color:var(--go)}.fields{margin:6px 0 0}.field{padding:10px 0;border-bottom:1px solid var(--line)}.field:last-child{border-bottom:0}.field dt{font-size:16px;font-weight:600;color:var(--ink-2)}.field dd{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:2px 0 0}.field-value{flex:1 1 10em;min-width:0;font-size:18px;font-weight:600;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text}.field-actions{display:flex;flex-wrap:wrap;gap:8px}.field.is-warn dt,.field.is-warn .field-value{color:var(--stop)}.links{display:grid;gap:8px;margin:8px 0 0;padding:0;list-style:none}.notes{margin-top:8px;white-space:pre-wrap;overflow-wrap:anywhere}.driver{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;gap:12px;overflow-y:auto;padding:calc(env(safe-area-inset-top) + 24px) 20px calc(env(safe-area-inset-bottom) + 20px);background:var(--surface);color:var(--ink)}.driver-en{font-size:20px;font-weight:700;color:var(--ink-2)}.driver-name{font-size:26px;font-weight:700;overflow-wrap:anywhere}.driver-address{flex:1;font-size:clamp(36px,11vw,64px);font-weight:800;line-height:1.2;overflow-wrap:anywhere}.edit-form{display:grid;gap:18px}.kinds{min-width:0;margin:0;padding:0;border:0}.kinds legend{margin-bottom:8px;padding:0;font-size:17px;font-weight:700}.kind-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.kind-tile{position:relative;display:block}.kind-tile input{position:absolute;width:1px;height:1px;opacity:0}.kind-tile span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:64px;border:2px solid var(--line);border-radius:var(--r-plate);background:var(--surface);font-size:16px;font-weight:700}.kind-tile input:checked+span{background:var(--sign);color:#000;border-color:#000}.kind-tile input:focus-visible+span{outline:3px solid var(--link);outline-offset:2px}.form-field{min-width:0}.form-field label{display:block;margin-bottom:6px;font-size:17px;font-weight:700}.form-field input,.form-field select,.form-field textarea{display:block;width:100%;min-height:50px;padding:10px 12px;border:2px solid var(--line-strong);border-radius:var(--r-plate);background:var(--surface);color:var(--ink);font:inherit;font-size:17px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-field select{padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238C96A1' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:22px}.form-field textarea{resize:vertical}.field-hint{margin-top:4px;font-size:16px;color:var(--ink-2)}.edit-intro{margin:-4px 0 14px}.form-field label.check-field{position:relative;display:flex;align-items:center;min-height:48px;margin-bottom:0;cursor:pointer}.check-field input{position:absolute;width:1px;height:1px;opacity:0}.check-field span{display:flex;align-items:center;gap:12px}.check-field span:before{content:"";width:28px;height:28px;flex:none;border:2px solid var(--line-strong);border-radius:6px;background:var(--surface) center / 20px no-repeat}.check-field input:checked+span:before{border-color:#000;background-color:var(--sign);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E")}.check-field input:focus-visible+span:before{outline:3px solid var(--link);outline-offset:2px}[data-testid=window]{margin-top:10px}.field-pair{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:12px}.form-error{padding:12px;border:2px solid var(--stop);border-radius:var(--r-plate);background:var(--stop-soft);color:var(--stop);font-weight:700}.form-actions{display:grid;gap:10px}.delete-area{margin-top:28px;padding-top:16px;border-top:1px solid var(--line)}.confirm{display:grid;gap:8px;padding:14px;border:2px solid var(--stop);border-radius:var(--r-plate);background:var(--surface)}.confirm-q{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:800;color:var(--stop)}.info-group{margin:16px 0;overflow:hidden;background:var(--surface);border-radius:var(--r-plate)}.info-title{padding:10px 12px;background:var(--plate);color:var(--plate-ink);font-size:18px;font-weight:800}.info-group .fields{margin:0;padding:0 12px}.stays{display:grid;gap:18px;padding:12px}.info-hint{padding:10px 12px 0}.info-mavis{padding:0 12px 4px}.stay .place-actions{margin-top:10px}.boot-msg{max-width:560px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 32px) var(--gutter) 0;font-size:20px;font-weight:700;line-height:1.5}.login-full{width:100%;max-width:560px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 24px) var(--gutter) calc(32px + env(safe-area-inset-bottom))}.login-lead{margin:0 0 16px;font-size:18px;font-weight:700;line-height:1.5}.login-form{display:grid;gap:16px}.login-msg{margin:0;font-size:17px;font-weight:700}.login-msg:empty{display:none}.login-msg-busy{color:var(--ink-2)}.login-msg-ok{color:var(--go-ink)}.login-msg-warn{color:var(--stop)}.banners{width:100%;max-width:560px;margin:0 auto;padding:0 var(--gutter)}.banners:empty{display:none}.banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin-top:12px;padding:10px 12px;border:2px solid var(--sign-edge);border-radius:var(--r-plate);background:var(--surface)}.banner-text{flex:1 1 12em;margin:0;font-size:17px;font-weight:700}.banner .login{flex:1 1 100%;padding:4px 0}.preview-clock{padding:calc(env(safe-area-inset-top) + 6px) var(--gutter) 6px;background:var(--plate);color:var(--plate-ink);font-size:16px;text-align:center}.boot-error{margin:var(--gutter);white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;color:var(--stop)}@media (prefers-reduced-motion: reduce){.live-dot{animation:none}.btn:active{transform:none}}
