:root{--bg:#fff;--fg:#050505;--muted:#666;--line:#e8e8e8;--soft:#f7f7f7;--accent:#111}[data-theme=dark]{--bg:#000;--fg:#fff;--muted:#aaa;--line:#333;--soft:#111;--accent:#fff}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.5}a{color:inherit;text-decoration:none}.wrap{max-width:1120px;margin:auto;padding:16px}.header{z-index:10;background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0}.bar{grid-template-columns:48px 1fr 48px;align-items:center;height:56px;display:grid}.logo{text-align:center;font-weight:700}.iconbtn,.btn{border:1px solid var(--line);background:var(--bg);color:var(--fg);cursor:pointer;border-radius:10px;padding:10px}.btn{justify-content:center;align-items:center;gap:8px;font-weight:600;display:inline-flex}.search{gap:8px;width:100%;margin:12px 0;display:flex}.search input,.field,select,textarea{border:1px solid var(--line);background:var(--bg);width:100%;color:var(--fg);font:inherit;border-radius:12px;padding:14px}.grid{gap:12px;display:grid}.cards{grid-template-columns:1fr}.card{border:1px solid var(--line);background:var(--bg);border-radius:14px;padding:14px}.meta{color:var(--muted);font-size:.92rem}.tags{flex-wrap:wrap;gap:6px;display:flex}.tag{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:.82rem}.actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.footer{border-top:1px solid var(--line);color:var(--muted);margin-top:40px;padding:24px 0}.menu{background:var(--bg);border-right:1px solid var(--line);z-index:20;width:min(82vw,320px);padding:20px;transition:all .15s;position:fixed;inset:0 auto 0 0;transform:translate(-105%)}.menu.open{transform:none}.section{margin:28px 0}.admin{gap:12px;display:grid}.reader{flex-direction:column;height:calc(100vh - 58px);display:flex}.reader iframe{background:var(--soft);border:0;flex:1;width:100%}@media (min-width:720px){.cards{grid-template-columns:repeat(3,1fr)}.admin{grid-template-columns:240px 1fr}.wrap{padding:20px}.bar{height:64px}}
