:root{--ink:#10231f;--ink-soft:#3a524c;--paper:#f3f7f4;--panel:#ffffffdb;--accent:#0f7a5f;--accent-deep:#0a5543;--line:#10231f1f;--danger:#9b2c2c;--ok:#1b6b3a;--shadow:0 24px 60px #10231f2e;--font-display:"Syne", sans-serif;--font-body:"Manrope", sans-serif;color:var(--ink);background:var(--paper);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100vh}a{color:var(--accent-deep);font-weight:600;text-decoration:none}a:hover{text-decoration:underline}.brand{font-family:var(--font-display);letter-spacing:-.04em;margin:0;font-size:clamp(2.4rem,6vw,3.6rem);font-weight:700;line-height:.95}.brand.compact{letter-spacing:-.03em;font-size:1.35rem}h1{font-family:var(--font-display);letter-spacing:-.03em;margin:.35rem 0 0;font-size:clamp(1.6rem,3vw,2.2rem);font-weight:650}.lede{color:var(--ink-soft);max-width:36rem;margin:.75rem 0 0;line-height:1.55}.muted{color:var(--ink-soft)}.page-shell.center{place-items:center;min-height:100vh;display:grid}.auth-stage{place-items:center;min-height:100vh;padding:2rem;display:grid;position:relative;overflow:hidden}.auth-atmosphere{background:radial-gradient(70% 55% at 12% 18%,#0f7a5f47,#0000 60%),radial-gradient(55% 45% at 88% 78%,#10231f2e,#0000 55%),linear-gradient(155deg,#e8f2ed 0%,#f7faf8 48%,#dfece6 100%);animation:14s ease-in-out infinite alternate drift;position:absolute;inset:0}@keyframes drift{0%{transform:scale(1)translate(0,0)}to{transform:scale(1.04)translate(-1.5%,1%)}}.auth-panel{background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);width:min(100%,420px);box-shadow:var(--shadow);padding:2.25rem 2rem 2rem;animation:.7s both rise;position:relative}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.stack-form{gap:1rem;margin-top:1.75rem;display:grid}.stack-form label{color:var(--ink-soft);gap:.4rem;font-size:.9rem;font-weight:600;display:grid}.stack-form input{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#fff;border-radius:10px;padding:.75rem .9rem;transition:border-color .2s,box-shadow .2s}.stack-form input:focus{border-color:#0f7a5f8c;outline:none;box-shadow:0 0 0 3px #0f7a5f26}.stack-form button,button.linkish{font:inherit;cursor:pointer}.stack-form button{background:linear-gradient(135deg, var(--accent), var(--accent-deep));color:#fff;border:0;border-radius:10px;margin-top:.25rem;padding:.85rem 1rem;font-weight:700;transition:transform .18s,filter .18s}.stack-form button:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px)}.stack-form button:disabled{opacity:.7;cursor:wait}.form-error{color:var(--danger);margin:0;font-size:.92rem}.form-success{color:var(--ok);margin:0;font-size:.92rem}.auth-switch{text-align:center;color:var(--ink-soft);margin:1.35rem 0 0;font-size:.95rem}.app-shell{background:radial-gradient(50% 40% at 100% 0,#0f7a5f1f,#0000 55%),linear-gradient(#f7faf8,#eef4f1);min-height:100vh}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffb3;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.5rem;display:flex}.topbar nav{align-items:center;gap:1.1rem;display:flex}button.linkish{color:var(--accent-deep);background:0 0;border:0;padding:0;font-weight:600}button.linkish:hover{text-decoration:underline}.content{width:min(920px,100% - 2.5rem);margin:2.25rem auto 3rem;animation:.55s both rise}.content.narrow{width:min(480px,100% - 2.5rem)}.profile-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem 1.5rem;margin:2rem 0 0;display:grid}.profile-grid div{border-top:1px solid var(--line);padding-top:.75rem}.profile-grid dt{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-size:.8rem}.profile-grid dd{margin:.35rem 0 0;font-weight:650}.topbar nav a{color:var(--ink-soft);font-weight:600;text-decoration:none}.topbar nav a.active{color:var(--accent-deep);text-decoration:underline}.topbar nav{flex-wrap:wrap;justify-content:flex-end}.action-links{gap:.85rem;margin-top:2rem;display:grid}.action-card{border:1px solid var(--line);color:var(--ink);background:#ffffffbf;padding:1rem 1.1rem;font-weight:650;text-decoration:none;transition:transform .18s,border-color .18s;display:block}.action-card:hover{border-color:#0f7a5f66;text-decoration:none;transform:translateY(-1px)}.panel{border:1px solid var(--line);background:#ffffffc7;margin-top:1.5rem;padding:1.25rem}.narrow-form{max-width:420px}.table-section{margin-top:2.25rem}.table-section h2,.panel h2,.split-panels h2{font-family:var(--font-display);margin:0 0 .85rem;font-size:1.15rem}.table-wrap{border:1px solid var(--line);background:#ffffffb8;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.75rem .85rem}th{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);font-size:.75rem}.row-actions{flex-wrap:wrap;gap:.5rem;display:flex}.row-actions button,.panel button.secondary,button.secondary{border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;background:#fff;border-radius:10px;padding:.55rem .8rem;font-weight:600}.row-actions button:not(.secondary){background:linear-gradient(135deg, var(--accent), var(--accent-deep));color:#fff;border:0}.split-panels{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-top:1.5rem;display:grid}.perm-list{border:1px solid var(--line);border-radius:10px;gap:.45rem;max-height:240px;padding:.75rem;display:grid;overflow:auto}.perm-list legend{padding:0 .25rem;font-weight:650}.check-row{grid-template-columns:auto 1fr;align-items:start;gap:.55rem;font-weight:500;display:grid}.check-row small{color:var(--ink-soft);display:block}.stack-form select{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#fff;border-radius:10px;padding:.75rem .9rem}@media (width<=640px){.auth-panel{padding:1.75rem 1.25rem}.topbar{padding-inline:1rem}}
