:root{--bg:#0a0a0f;--surface:#141420;--surface-2:#1c1c2b;--border:#262636;--text:#f4f4f8;--muted:#9a9aad;--accent:#8b5cf6;--accent-dim:#6d43d6;--green:#34d399;--amber:#fbbf24;--danger:#f87171;--radius:16px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.5}a{color:inherit;text-decoration:none}.shell{display:flex;min-height:100vh}.sidebar{width:240px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);padding:24px 16px;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand,.sidebar{display:flex;gap:8px}.brand{font-size:20px;font-weight:600;letter-spacing:.08em;padding:8px 12px 20px;align-items:center}.brand .dot{width:10px;height:10px;border-radius:999px;background:var(--accent);box-shadow:0 0 12px var(--accent)}.nav-link{padding:12px;border-radius:12px;color:var(--muted);font-weight:500;display:flex;align-items:center;gap:12px;transition:background .15s,color .15s}.nav-link:hover{background:var(--surface-2);color:var(--text)}.nav-link.active{background:rgba(139,92,246,.16);color:var(--text)}.main,.sidebar-spacer{flex:1 1}.main{min-width:0;padding:32px 40px 80px;max-width:1100px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:28px}.page-title{font-size:30px;font-weight:600;margin:0}.page-sub{color:var(--muted);margin:4px 0 0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:12px;border:1px solid transparent;background:var(--accent);color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s}.btn:hover{background:var(--accent-dim)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-ghost{background:transparent;border-color:var(--border);color:var(--text)}.btn-ghost:hover{background:var(--surface-2)}.btn-danger{background:transparent;border-color:var(--border);color:var(--danger)}.card{padding:20px}.card,.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:640px}td,th{text-align:left;padding:14px 16px;border-bottom:1px solid var(--border);vertical-align:middle}th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}tbody tr:last-child td{border-bottom:none}.thumb,tbody tr:hover{background:var(--surface-2)}.thumb{width:44px;height:44px;border-radius:10px;object-fit:cover;border:1px solid var(--border)}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface-2);color:var(--muted)}.pill.going{color:var(--green)}.pill.maybe{color:var(--amber)}.pill.inside{color:var(--accent)}.empty,.muted{color:var(--muted)}.empty{padding:48px 24px;text-align:center}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:20px;gap:20px}.field{display:flex;flex-direction:column;gap:8px}.field.full{grid-column:1/-1}label.field-label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}input,select,textarea{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:15px;font-family:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}textarea{min-height:96px;resize:vertical}input[type=file]{padding:10px;color:var(--muted)}.form-actions{display:flex;gap:12px;margin-top:24px}.error{background:hsla(0,91%,71%,.12);border:1px solid hsla(0,91%,71%,.4);color:var(--danger);padding:12px 16px;border-radius:12px;margin-bottom:20px}.hint{font-size:12px;color:var(--muted)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:32px}@media (max-width:720px){.sidebar{display:none}.main{padding:24px 20px 60px}.form-grid{grid-template-columns:1fr}}