:root{--bg:#f4f1eb;--panel:#fffcf7;--panel-2:#fff;--text:#1c1a17;--muted:#6e675e;--accent:#0d6433;--accent-2:#0a5229;--accent-soft:#0d643317;--border:#e0d8cc;--ok:#0d6433;--danger:#8b2e2e;--warn:#8a5a00;--radius:12px;--shadow-soft:0 1px 2px #1c1a170a, 0 8px 24px #1c1a170a;color:var(--text);background:radial-gradient(ellipse 80% 50% at 70% -10%, #e8efe9 0%, transparent 55%), radial-gradient(ellipse 60% 40% at 0% 0%, #efe8dc 0%, transparent 50%), var(--bg);font-family:Segoe UI,Tahoma,sans-serif;line-height:1.45}*{box-sizing:border-box}body{min-height:100vh;margin:0}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-2);text-decoration:underline}.shell{max-width:960px;margin:0 auto;padding:1.5rem}.topbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:2rem;padding-bottom:1rem;display:flex}.topbar-brand{min-width:0}.topbar-end{flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;gap:1rem 1.5rem;display:flex}.brand{letter-spacing:.01em;color:var(--accent);font-size:1.35rem;font-weight:700}.session{text-align:right;min-width:0;max-width:16rem}.session-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:600;overflow:hidden}.session-email{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.session-role{letter-spacing:.02em;text-transform:uppercase;color:var(--accent);margin-top:.15rem;font-size:.72rem;font-weight:600}.muted{color:var(--muted)}.grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.tile{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-soft);color:inherit;padding:1.25rem;transition:border-color .15s,transform .15s,box-shadow .15s,background .15s;display:block}.tile:hover{background:#f3faf6;border-color:#b9d0c2;text-decoration:none;transform:translateY(-2px);box-shadow:0 2px 8px #0d643314}.tile h2{color:var(--text);margin:0 0 .35rem;font-size:1.15rem}.tile p{color:var(--muted);margin:0;font-size:.9rem}.tile-disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.25);box-shadow:none}.tile-disabled:hover{border-color:var(--border);background:var(--panel);box-shadow:none;transform:none}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-soft);margin-bottom:1.25rem;padding:1.25rem}.panel h2{margin:0 0 1rem;font-size:1.1rem}.row{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}input,select,button{font:inherit;border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:9px;padding:.45rem .65rem}button,.btn{background:var(--accent);border-color:var(--accent);cursor:pointer;color:#fff;font-weight:600}button:hover,.btn:hover{background:var(--accent-2);border-color:var(--accent-2)}button.secondary{color:var(--text);border-color:var(--border);background:0 0}button.secondary:hover{background:var(--accent-soft);color:var(--accent);border-color:#b9d0c2}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.5rem .4rem}.nav a{color:#3d3933;margin-right:1rem;font-weight:600}.nav a:hover{color:var(--accent);background:var(--accent-soft);text-decoration:none}.error{color:var(--danger)}.chip{border:1px solid var(--border);color:var(--muted);background:#fff;border-radius:999px;margin-right:.35rem;padding:.15rem .45rem;font-size:.75rem;display:inline-block}.chip.on{color:var(--ok);background:#e5f4ea;border-color:#b9d0c2}
