*{box-sizing:border-box}html,body{margin:0;min-height:100vh;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;color:#0f172a;background:linear-gradient(165deg,#f8f5ef,#e8e4dc 45%,#dce6f0)}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px 24px;background:#ffffffb8;border-bottom:1px solid rgba(15,23,42,.08);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brand-row{display:flex;align-items:center;gap:14px}.brand-row img{height:40px;width:auto}.brand-text h1{margin:0;font-size:1.35rem;font-weight:800;letter-spacing:-.02em}.brand-text .tag{font-size:.75rem;color:#64748b;margin-top:2px}.main{flex:1;max-width:1120px;margin:0 auto;padding:24px;width:100%}.login-panel{max-width:420px;margin:48px auto;padding:28px;background:#ffffffe0;border-radius:16px;border:1px solid rgba(15,23,42,.08);box-shadow:0 16px 40px #0f172a14}.motto{font-size:1.05rem;font-weight:600;color:#1e3a5f;margin:0 0 8px}.subtitle{font-size:.9rem;line-height:1.5;color:#475569;margin:0 0 20px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:.8rem;font-weight:600;color:#334155}.field input{border-radius:10px;border:1px solid #cbd5e1;padding:10px 12px;font-size:.95rem}.btn{appearance:none;border-radius:10px;border:1px solid rgba(15,23,42,.12);background:#fff;color:#0f172a;padding:10px 16px;font-weight:600;cursor:pointer;font-size:.9rem}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:linear-gradient(135deg,#1e40af,#1d4ed8);color:#fff;border-color:transparent;width:100%}.btn-ghost{background:transparent}.btn-open{margin-top:10px;width:100%;background:#0f172a;color:#fff;border-color:#0f172a}.btn-open:disabled{background:#94a3b8;border-color:#94a3b8;color:#f1f5f9}.banner{padding:12px 14px;border-radius:10px;margin-bottom:20px;font-size:.9rem}.banner-warn{background:#fbbf2433;border:1px solid rgba(245,158,11,.45);color:#78350f}.banner-info{background:#3b82f61f;border:1px solid rgba(37,99,235,.35);color:#1e3a8a}.banner-error{background:#f8717126;border:1px solid rgba(239,68,68,.4);color:#7f1d1d}.user-strip{font-size:.875rem;color:#334155;margin-bottom:8px}.user-strip strong{color:#0f172a}.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px;align-items:center}.section-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:#64748b;margin:28px 0 12px;font-weight:700}.section-title:first-of-type{margin-top:8px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.head-card{background:#ffffffeb;border:1px solid rgba(15,23,42,.09);border-radius:14px;padding:16px;display:flex;flex-direction:column;min-height:180px}.head-card.disabled{opacity:.72}.head-card .cat{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;margin-bottom:6px}.head-card h3{margin:0 0 8px;font-size:1.05rem}.head-card .desc{flex:1;font-size:.85rem;line-height:1.45;color:#475569;margin:0}.head-card .role-note{font-size:.75rem;color:#64748b;margin:8px 0 0;line-height:1.45}.head-card .url-line{font-size:.72rem;color:#64748b;word-break:break-all;margin:8px 0 0;line-height:1.35}.head-card .slug-line{font-size:.72rem;color:#94a3b8;margin:6px 0 0}.head-card .slug-line code{font-size:.85em;background:#0f172a0d;padding:1px 5px;border-radius:4px}.mono-inline{font-size:.85em;word-break:break-all}.pill-stack{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;min-height:0}.pill-soon{display:inline-block;font-size:.7rem;padding:3px 8px;border-radius:999px;background:#64748b26;color:#475569}.action-placeholder{margin-top:10px;font-size:.82rem;-webkit-user-select:none;user-select:none}.head-card.disabled .action-placeholder{color:#94a3b8}@media print{.action-placeholder{display:none}.pill-stack{break-inside:avoid}}.footer-bar{text-align:center;padding:20px 16px;font-size:.82rem;color:#64748b;border-top:1px solid rgba(15,23,42,.06);background:#ffffff80}.muted-note{font-size:.8rem;color:#64748b;margin-top:16px;line-height:1.5}.empty-box{padding:28px;text-align:center;border-radius:14px;border:1px dashed rgba(100,116,139,.45);background:#ffffff80;color:#475569}
