/* PWA controls share the console's light/dark palette. */
[hidden]{display:none!important}
.pwa-install{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:44px;border:1px solid var(--line,#e8e5dc);border-radius:9px;background:var(--paper,#fffefb);color:var(--ink,#35332f);font:inherit;font-size:12px;cursor:pointer}
.pwa-install svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;flex:none}
.pwa-install:hover{border-color:var(--accent,#c57455)}
.pwa-install-entry{margin-top:auto;padding-top:16px}
.login-form-panel .pwa-install{margin-top:12px;background:transparent}
.pwa-banner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 34px;background:var(--soft,#eee3d9);border-bottom:1px solid var(--line,#e8e5dc);color:var(--ink,#35332f);font-size:13px;line-height:1.6}
.pwa-banner p{margin:0;min-width:0}
.pwa-banner-actions{display:flex;gap:8px;flex:none}
.login-page>.pwa-banner{padding-right:76px}
.pwa-action{min-height:44px;padding:8px 14px;border:1px solid var(--line,#e8e5dc);border-radius:8px;background:var(--paper,#fffefb);color:var(--ink,#35332f);font:inherit;font-size:13px;cursor:pointer;white-space:nowrap}
.pwa-action.primary{background:var(--accent,#c57455);color:#fff;border-color:transparent}
.pwa-action:disabled{opacity:.55;cursor:default}
.pwa-action:focus-visible,.pwa-install:focus-visible,.pwa-home:focus-visible{outline:2px solid var(--accent,#c57455);outline-offset:3px}
dialog.pwa-dialog{width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:24px;border:1px solid var(--line,#e8e5dc);border-radius:16px;background:var(--paper,#fffefb);color:var(--ink,#35332f);overflow:auto;box-shadow:0 20px 80px #0003;font-size:14px}
dialog.pwa-dialog::backdrop{background:#0007}
.pwa-dialog img{border-radius:14px}
.pwa-dialog h2{font-size:22px;margin:14px 0 10px}
.pwa-dialog p{line-height:1.8;margin:10px 0}
.pwa-dialog .pwa-action{width:100%;margin-top:14px}
.pwa-dialog-note{color:var(--muted,#8b857c);font-size:12px}
.pwa-offline-page{--bg:#faf9f6;--paper:#fffefb;--ink:#35332f;--muted:#8b857c;--line:#e8e5dc;--accent:#c57455;margin:0;min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:32px max(20px,env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:var(--bg);color:var(--ink);font:15px/1.8 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
html.dark .pwa-offline-page{--bg:#1c1b19;--paper:#262523;--ink:#f0eeea;--muted:#a6a096;--line:#3b3934;--accent:#d97757;color-scheme:dark}
.pwa-offline-card{width:min(440px,100%);box-sizing:border-box;text-align:center;background:var(--paper);padding:32px 24px;border:1px solid var(--line);border-radius:20px}
.pwa-offline-card img{border-radius:18px}
.pwa-offline-card h1{font-size:26px;margin:8px 0 16px}
.pwa-eyebrow{font-size:13px;color:var(--muted);margin:16px 0 0}
.pwa-offline-note{font-size:12px;color:var(--muted);margin-bottom:24px}
.pwa-home{display:block;margin-top:16px;color:var(--muted);font-size:13px}
@media(min-width:701px) and (max-width:850px){.pwa-install-entry .pwa-install-label{display:none}.pwa-install-entry .pwa-install{padding:10px}}
@media(max-width:700px){
  .pwa-banner{padding:12px max(13px,env(safe-area-inset-right)) 12px max(13px,env(safe-area-inset-left));align-items:flex-start;flex-direction:column;gap:8px}
  .pwa-banner-actions{flex-wrap:wrap}
  .login-page>.pwa-banner{padding-right:70px}
  .sidebar nav{flex-shrink:0}
  .pwa-install-entry{margin-top:0;padding-top:16px;flex-shrink:0}
  .login-page input,.login-page select,.login-page textarea{font-size:16px}
  .topbar{padding-top:calc(8px + env(safe-area-inset-top))}
}
@media(display-mode:standalone){
  .login-shell{min-height:100dvh;padding-top:max(32px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom))}
  .login-theme-toggle{top:calc(16px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right))}
  .topbar{padding-top:max(8px,env(safe-area-inset-top));min-height:69px;height:auto}
  .shell{min-height:100dvh}
}
