:root{--purple: #7655b7;--purple-strong: #5b3e9d;--gold: #ebc24a;--bg: #fbf9ff;--surface: #ffffff;--surface-2: #f0eaf9;--surface-3: #e7def5;--text: #241536;--text-2: #5c4b78;--outline: #cfc2e6;--outline-strong: #7a6b99;--primary: #7655b7;--on-primary: #ffffff;--danger: #b3261e;--danger-bg: #fbe9e7;--ok: #1e7a4d;--ok-bg: #e5f4ec;--warn-bg: #fff4d6;--shadow: 0 1px 2px rgb(36 21 54 / 6%), 0 4px 16px rgb(36 21 54 / 6%);--radius: 16px;--radius-sm: 10px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #23163a;--surface: #2e1e4b;--surface-2: #3f2a63;--surface-3: #4a326f;--text: #f3eefc;--text-2: #d8c9f0;--outline: #56397f;--outline-strong: #9a7bd0;--primary: #b9a2e6;--on-primary: #241536;--danger: #ffb4ab;--danger-bg: #5c1d18;--ok: #8fd8b0;--ok-bg: #173b29;--warn-bg: #4d3d10;--shadow: 0 1px 2px rgb(0 0 0 / 30%), 0 4px 16px rgb(0 0 0 / 25%);color-scheme:dark}}:root[data-theme=dark]{--bg: #23163a;--surface: #2e1e4b;--surface-2: #3f2a63;--surface-3: #4a326f;--text: #f3eefc;--text-2: #d8c9f0;--outline: #56397f;--outline-strong: #9a7bd0;--primary: #b9a2e6;--on-primary: #241536;--danger: #ffb4ab;--danger-bg: #5c1d18;--ok: #8fd8b0;--ok-bg: #173b29;--warn-bg: #4d3d10;--shadow: 0 1px 2px rgb(0 0 0 / 30%), 0 4px 16px rgb(0 0 0 / 25%);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,Ubuntu,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--primary)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:6px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 16px;border-radius:999px;border:1px solid var(--outline);background:var(--surface);cursor:pointer;font-weight:600}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--primary);color:var(--on-primary);border-color:transparent}.btn-primary:hover{background:var(--purple-strong);color:#fff}.btn-danger{color:var(--danger);border-color:var(--danger)}.btn-ghost{border-color:transparent;background:transparent}.btn-sm{min-height:32px;padding:0 12px;font-size:13px}.card{background:var(--surface);border:1px solid var(--outline);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:20px}.muted{color:var(--text-2)}.small{font-size:13px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.spacer{flex:1}.stack{display:flex;flex-direction:column;gap:12px}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface-2);color:var(--text-2)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-ok{background:var(--ok-bg);color:var(--ok)}.badge-unread{background:var(--primary);color:var(--on-primary)}.notice{padding:12px 16px;border-radius:var(--radius-sm);background:var(--surface-2)}.notice-danger{background:var(--danger-bg);color:var(--danger)}.notice-ok{background:var(--ok-bg);color:var(--ok)}.notice-warn{background:var(--warn-bg)}label.field{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-2)}.input,select.input,textarea.input{min-height:40px;padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--outline);background:var(--surface);color:var(--text)}textarea.input{min-height:220px;resize:vertical;line-height:1.5}.input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #7655b740}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:16px;padding:10px 24px;background:var(--surface);border-bottom:1px solid var(--outline)}.brand{display:flex;align-items:center;gap:10px;font-weight:700}.brand-mark{width:34px;height:34px;border-radius:10px;background:var(--purple);color:var(--gold);display:grid;place-items:center;font-family:Georgia,serif;font-size:20px}.brand small{display:block;font-weight:500;color:var(--text-2);font-size:12px}.nav{display:flex;gap:4px}.nav button{border:0;background:transparent;padding:8px 14px;border-radius:999px;cursor:pointer;color:var(--text-2);font-weight:600}.nav button[aria-current=page]{background:var(--surface-2);color:var(--text)}.topbar-menu{display:flex;align-items:center;gap:16px;flex:1;min-width:0}.menu-toggle{display:none;margin-left:auto}.main{width:100%;max-width:1280px;margin:0 auto;padding:24px}.page-title{margin:0 0 16px;font-size:24px;font-weight:700}.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(1200px 600px at 10% -10%,var(--surface-2),transparent),var(--bg)}.login-card{width:min(920px,100%);display:grid;grid-template-columns:1fr 1fr;gap:0;overflow:hidden}.login-info{padding:32px;display:flex;flex-direction:column;gap:16px}.login-qr{padding:32px;background:var(--surface-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.qr-box{background:#fff;padding:12px;border-radius:16px;line-height:0}.qr-box svg{width:248px;height:248px;display:block}.qr-box.dimmed svg{opacity:.15}.match{display:flex;flex-direction:column;align-items:center;gap:2px}.match-number{font-size:48px;font-weight:800;letter-spacing:4px;font-variant-numeric:tabular-nums;color:var(--text);background:var(--surface);border:2px solid var(--gold);border-radius:16px;padding:4px 22px;line-height:1.2}.steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px}.progress{width:248px;height:4px;background:var(--surface-3);border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--primary)}.kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:20px}.kpi{padding:16px}.kpi-value{font-size:28px;font-weight:750;font-variant-numeric:tabular-nums}.kpi-label{font-size:13px;color:var(--text-2)}.filters{padding:14px 16px;margin-bottom:20px;display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--outline);background:var(--surface);padding:6px 12px;border-radius:999px;cursor:pointer;font-size:13px;font-weight:600}.chip[aria-pressed=true]{background:var(--primary);color:var(--on-primary);border-color:transparent}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.section{padding:0;display:flex;flex-direction:column;min-height:160px}.section-head{display:flex;align-items:center;gap:8px;padding:14px 18px;border-bottom:1px solid var(--outline)}.section-head h2{margin:0;font-size:15px;font-weight:700}.section-body{padding:6px 0}.list{list-style:none;margin:0;padding:0}.list li{display:flex;align-items:center;gap:12px;padding:10px 18px;border-bottom:1px solid var(--surface-2)}.list li:last-child{border-bottom:0}.list .grow{flex:1;min-width:0}.list .title{font-weight:600;overflow-wrap:break-word;word-break:normal}.clickable{cursor:pointer}.clickable:hover{background:var(--surface-2)}.avatar{width:36px;height:36px;border-radius:50%;background:var(--surface-3);color:var(--text-2);display:grid;place-items:center;font-weight:700;flex:none;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.empty{padding:18px;color:var(--text-2)}.lib-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.md p{margin:0 0 10px}.md ul{margin:0 0 10px;padding-left:20px}.files{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.file{border:1px solid var(--outline);border-radius:var(--radius-sm);overflow:hidden;background:var(--surface)}.file img{width:100%;height:100px;object-fit:cover;display:block;background:var(--surface-2)}.file .file-meta{padding:6px 8px;font-size:12px;display:flex;gap:6px;align-items:center}.file .pdf{height:100px;display:grid;place-items:center;background:var(--surface-2);font-weight:700}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#140a2373;display:grid;place-items:center;z-index:50;padding:16px}.dialog{width:min(440px,100%);padding:22px}.dialog h2{margin:0 0 8px;font-size:18px}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:60;padding:12px 18px;border-radius:999px;background:var(--text);color:var(--bg);box-shadow:var(--shadow)}.topbar-menu,.menu-toggle{order:1}.bell{position:relative;order:2}.bell-button{display:inline-flex;align-items:center;gap:6px}.bell-icon{display:block}.bell-count{min-width:20px;text-align:center}.bell-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:50;width:min(380px,calc(100vw - 32px));max-height:70vh;overflow:auto;padding:12px}.bell-title{margin:4px 6px 10px;font-size:16px}.bell-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.bell-item{display:flex;align-items:center;gap:4px;border-radius:var(--radius-sm);touch-action:pan-y}.bell-item:hover{background:var(--surface-2)}.bell-open{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:var(--radius-sm)}.bell-label{font-weight:600}.push-hint{margin-bottom:16px;display:flex;flex-direction:column;gap:6px}.push-hint p{margin:0}.push-setting{position:relative;display:inline-flex;align-items:center;gap:6px}.push-label{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;color:var(--text-2)}.push-note{display:inline-flex;align-items:center;color:var(--danger);cursor:help;border-radius:999px}.push-note-icon{display:block;flex:none}.push-note-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.push-note:hover .push-note-text,.push-note:focus .push-note-text,.push-note:focus-visible .push-note-text{clip:auto;overflow:visible;width:max-content;max-width:300px;height:auto;white-space:normal;top:calc(100% + 8px);right:0;z-index:60;padding:8px 12px;border-radius:var(--radius-sm);background:var(--text);color:var(--bg);box-shadow:var(--shadow)}.topbar{gap:12px}.topbar-menu{gap:12px;flex-wrap:wrap;row-gap:8px}.brand,.nav button,.topbar-user{white-space:nowrap}.nav button{padding:8px 12px}.retention-hint{margin:0;padding:12px 18px 4px}.retention-pad{margin:8px 18px}.list li.retention-row{display:grid;align-items:center;gap:4px 16px;grid-template-columns:minmax(9rem,1fr) minmax(10rem,1.2fr) minmax(14rem,1.4fr)}.retention-name{justify-self:start;justify-content:flex-start;text-align:left;padding:0 6px;margin-left:-6px;white-space:normal;overflow-wrap:break-word}.retention-category{min-width:0}.retention-planned{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0}.retention-date{font-variant-numeric:tabular-nums}.retention-hold{white-space:nowrap}@media(max-width:1100px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:780px){.topbar{flex-wrap:wrap;padding:10px 16px}.main{padding:16px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.grid,.grid-3,.lib-layout,.login-card{grid-template-columns:minmax(0,1fr)}.qr-box svg{width:220px;height:220px}}@media(max-width:640px){.menu-toggle{display:inline-flex;align-items:center;gap:6px;order:2;margin-left:8px}.bell{order:1;margin-left:auto}.topbar-menu{order:3;flex:1 0 100%;flex-direction:column;align-items:stretch;gap:8px;padding-top:8px;border-top:1px solid var(--outline)}.topbar-menu[data-open=false]{display:none}.topbar-menu .nav{flex-direction:column}.topbar-menu .nav button{text-align:left;border-radius:var(--radius-sm)}.topbar-menu .spacer{display:none}.list li.retention-row{grid-template-columns:minmax(0,1fr);gap:2px}.list li{flex-wrap:wrap;row-gap:6px}.list>li>.grow{flex:1 1 10rem}.list li>.btn:last-child{margin-left:auto}.push-setting{flex-wrap:wrap;align-items:flex-start}.push-note{align-items:flex-start;gap:6px;color:var(--text-2);cursor:default}.push-note-icon{color:var(--danger)}.push-note .push-note-text,.push-note:hover .push-note-text,.push-note:focus .push-note-text,.push-note:focus-visible .push-note-text{position:static;width:auto;max-width:none;height:auto;clip:auto;overflow:visible;white-space:normal;padding:0;background:none;color:var(--text-2);box-shadow:none}.bell{position:static}.bell-panel{left:8px;right:8px;width:auto;top:calc(100% + 4px);max-height:calc(100vh - 120px)}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
