:root{--shell-bg: #f3f6f5;--shell-surface: #fff;--shell-line: #d3dcda;--shell-fg: #14211f;--shell-muted: #5a6a67;--shell-accent: #0d6b63;--shell-accent-ink: #fff;--shell-danger: #bb3b2c;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--shell-bg: #0e1413;--shell-surface: #162120;--shell-line: #2a3a38;--shell-fg: #e4edeb;--shell-muted: #93a6a2;--shell-accent: #4cc4b4;--shell-accent-ink: #06211d;--shell-danger: #ff8b7a;color-scheme:dark}}:root[data-theme=dark]{--shell-bg: #0e1413;--shell-surface: #162120;--shell-line: #2a3a38;--shell-fg: #e4edeb;--shell-muted: #93a6a2;--shell-accent: #4cc4b4;--shell-accent-ink: #06211d;--shell-danger: #ff8b7a;color-scheme:dark}*{box-sizing:border-box}#app{min-height:100vh;display:flex;flex-direction:column}[hidden]{display:none!important}img{max-width:100%}body{margin:0;background:var(--shell-bg);color:var(--shell-fg);font:15px/1.5 Be Vietnam Pro,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--shell-accent);outline-offset:2px}.topbar{display:flex;align-items:center;gap:6px 18px;flex-wrap:wrap;padding:8px 20px;background:var(--shell-surface);border-bottom:1px solid var(--shell-line)}.topbar .logo{font-weight:800;color:var(--shell-accent);text-decoration:none}.topbar .who{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--shell-muted)}.page{max-width:1000px;margin:0 auto;padding:28px 20px 64px}.page h1{margin:0 0 4px;font-size:24px}.page .lead{margin:0 0 22px;color:var(--shell-muted)}.page h2{font-size:17px;margin:28px 0 10px}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.tile{display:flex;flex-direction:column;gap:4px;padding:18px;background:var(--shell-surface);border:1px solid var(--shell-line);border-radius:12px;text-decoration:none;color:inherit}a.tile:hover{border-color:var(--shell-accent)}.tile b{font-size:16.5px}.tile span{color:var(--shell-muted);font-size:13.5px}.tile.off{opacity:.6}.tile em{font-style:normal;font-size:12px;font-weight:600;color:var(--shell-muted)}.panel-box{background:var(--shell-surface);border:1px solid var(--shell-line);border-radius:12px;padding:18px}.form-row{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.form-row label{font-size:13px;font-weight:600}.form-row input{padding:9px 11px;border:1px solid var(--shell-line);border-radius:8px;background:transparent;width:100%}.shell-btn{border:1px solid var(--shell-line);background:var(--shell-surface);border-radius:8px;padding:7px 14px;cursor:pointer;font-weight:600;font-size:14px}.shell-btn:hover{border-color:var(--shell-accent)}.shell-btn.primary{background:var(--shell-accent);border-color:var(--shell-accent);color:var(--shell-accent-ink)}.shell-btn:disabled{opacity:.5;cursor:default}.shell-err{color:var(--shell-danger);font-size:13.5px;min-height:20px;margin:4px 0 8px}.login{max-width:380px;margin:9vh auto 0;padding:0 16px}.login h1{font-size:22px;margin:0 0 2px}.login p{margin:0 0 18px;color:var(--shell-muted);font-size:14px}.users{width:100%;border-collapse:collapse;font-size:14px}.users th,.users td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--shell-line)}.users-scroll{overflow-x:auto}.grid-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:0 12px;align-items:end}.toast-shell{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translate(-50%);background:var(--shell-fg);color:var(--shell-bg);padding:9px 16px;border-radius:8px;font-size:14px;z-index:60;max-width:calc(100% - 32px)}.boot{padding:60px 20px;text-align:center;color:var(--shell-muted)}.topbar .who a{color:inherit}.prefs{display:flex;gap:6px}.prefs select{padding:4px 6px;font-size:13px;border:1px solid var(--shell-line);border-radius:7px;background:var(--shell-surface);color:var(--shell-fg)}.login .prefs{justify-content:flex-end;margin-bottom:18px}.source-note{margin:10px auto;max-width:1200px;padding:6px 20px;font-size:13px;color:var(--shell-muted)}.mod-pgsga,.mod-screening{padding-inline:16px;padding-bottom:48px}.wrap .source-note{max-width:none;margin:10px 0 0;padding:0}.app-body{flex:1;display:flex;min-width:0}.app-content{flex:1;min-width:0;display:flex;flex-direction:column}.side-nav{flex:none;width:216px;background:var(--shell-surface);border-right:1px solid var(--shell-line)}.side-inner{position:sticky;top:0;display:flex;flex-direction:column;gap:2px;padding:14px 10px;max-height:100vh;overflow-y:auto}.side-title{margin:12px 10px 4px;font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--shell-muted)}.side-link{display:block;padding:8px 10px;border-radius:8px;color:var(--shell-fg);font-size:14.5px;font-weight:600;text-decoration:none}a.side-link:hover{background:color-mix(in srgb,var(--shell-accent) 8%,transparent)}a.side-link.router-link-exact-active{color:var(--shell-accent);background:color-mix(in srgb,var(--shell-accent) 14%,transparent)}.side-link.off{color:var(--shell-muted);font-weight:500;cursor:default}.side-link.off em{display:block;font-style:normal;font-size:11.5px}.side-account{margin-top:12px;padding-top:10px;border-top:1px solid var(--shell-line)}.menu-btn{display:none;border:1px solid var(--shell-line);background:var(--shell-surface);border-radius:8px;padding:4px 10px;cursor:pointer;font-size:16px;line-height:1.4}.nav-scrim{display:none}@media (max-width: 860px){.menu-btn{display:inline-block}.side-nav{position:fixed;inset:0 auto 0 0;z-index:50;width:min(280px,85vw);transform:translate(-100%);visibility:hidden;transition:transform .18s ease-out,visibility .18s}.side-nav.open{transform:none;visibility:visible}.nav-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:49;background:#050f0d80}}@media (prefers-reduced-motion: reduce){.side-nav{transition:none}}.app-footer{margin-top:auto;display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 20px;padding:14px 20px;border-top:1px solid var(--shell-line);background:var(--shell-surface);color:var(--shell-muted);font-size:13px}@media print{.topbar,.side-nav,.app-footer,.source-note,.nav-scrim{display:none!important}}.mod-diet .source-note{max-width:none}
