:root{--bg-0: #f6f8f2;--bg-1: #e6edd9;--bg-2: #dbe7c8;--ink-0: #1d2a17;--ink-1: #334729;--accent: #0d8a64;--accent-2: #e7881d;--danger: #b3261e;--panel: rgba(255, 255, 255, .7);--stroke: rgba(30, 60, 20, .2)}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Noto Sans,PingFang SC,sans-serif;color:var(--ink-0);background:radial-gradient(circle at 8% 12%,#ffffff 0%,transparent 45%),radial-gradient(circle at 90% 84%,#f8d7b2 0%,transparent 38%),linear-gradient(145deg,var(--bg-0),var(--bg-1) 45%,var(--bg-2));min-height:100vh}#app{min-height:100vh}.mono{font-family:Consolas,Liberation Mono,monospace}@keyframes liftIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.panel{background:var(--panel);border:1px solid var(--stroke);border-radius:16px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.btn{border:1px solid transparent;background:var(--ink-0);color:#fff;border-radius:12px;padding:10px 14px;font-weight:600;cursor:pointer}.btn.secondary{background:transparent;color:var(--ink-0);border-color:var(--stroke)}.btn.danger{background:var(--danger)}.input,.textarea,.select{width:100%;border:1px solid var(--stroke);border-radius:10px;padding:10px 12px;font:inherit;color:var(--ink-0);background:#ffffffe6}.textarea{min-height:120px;resize:vertical}.hint{color:var(--ink-1);font-size:.92rem}.error{color:var(--danger);font-weight:600}.ok{color:var(--accent);font-weight:600}.shell{max-width:980px;margin:0 auto;padding:18px;display:grid;gap:14px;animation:liftIn .34s ease}.top{padding:16px;display:grid;gap:10px}.top h1{margin:0;font-size:clamp(1.2rem,2vw,1.8rem)}.nav{display:flex;flex-wrap:wrap;gap:8px}.nav a{text-decoration:none;color:var(--ink-0);border:1px solid var(--stroke);border-radius:999px;padding:6px 12px;font-weight:600}.nav a.router-link-active{background:var(--ink-0);color:#fff}.content{padding:18px}.view{display:grid;gap:14px}.grid{display:grid;gap:10px}.check-row{display:flex;gap:10px;align-items:center}.actions{display:flex;gap:10px;flex-wrap:wrap}.block{padding:12px;display:grid;gap:10px}.row{display:grid;grid-template-columns:1fr auto;gap:10px}.list{display:grid;gap:10px}.item{border:1px solid var(--stroke);border-radius:12px;padding:10px;background:#ffffff9e}.item p{margin:4px 0}.card{padding:12px}
