*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f1117;--surface: #1a1d27;--surface-hover: #242836;--border: #2e3345;--text: #e1e4ed;--text-muted: #8b8fa3;--primary: #6366f1;--primary-hover: #818cf8;--danger: #ef4444;--danger-hover: #f87171;--success: #22c55e;--free: #22c55e;--claimed: #f59e0b;--radius: 8px}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}.app{max-width:1000px;margin:0 auto;padding:24px}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid var(--border)}.header h1{font-size:1.25rem;font-weight:600}.user-info{display:flex;align-items:center;gap:8px}.avatar{width:28px;height:28px;border-radius:50%}.btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border:1px solid var(--border);border-radius:var(--radius);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s;font-family:inherit}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:var(--surface);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--surface-hover)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-sm{padding:4px 10px;font-size:.75rem}.btn-lg{padding:12px 24px;font-size:1rem}.login-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:16px}.login-container p{color:var(--text-muted)}.toolbar{margin-bottom:20px}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-bottom:32px}.slot-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:12px}.slot-header{display:flex;justify-content:space-between;align-items:center}.slot-header h3{font-size:1rem;font-weight:600}.status-badge{font-size:.7rem;font-weight:600;text-transform:uppercase;padding:2px 8px;border-radius:12px}.status-badge.free{background:color-mix(in srgb,var(--free) 20%,transparent);color:var(--free)}.status-badge.in-use{background:color-mix(in srgb,var(--claimed) 20%,transparent);color:var(--claimed)}.slot-body{display:flex;flex-direction:column;gap:6px;flex:1}.slot-body-empty{display:flex;align-items:center;justify-content:center;min-height:80px}.slot-detail{display:flex;gap:6px;font-size:.8rem}.slot-detail .label{color:var(--text-muted);min-width:48px}.slot-detail a{color:var(--primary-hover);text-decoration:none}.slot-detail a:hover{text-decoration:underline}.slot-actions{display:flex;gap:8px;margin-top:8px}.slot-links{display:flex;gap:12px;padding-top:8px;border-top:1px solid var(--border);font-size:.75rem}.slot-links a{color:var(--text-muted);text-decoration:none}.slot-links a:hover{color:var(--text)}.core-slot{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.core-slot h3{font-size:.9rem;font-weight:600;margin-bottom:4px}.core-slot p{font-size:.8rem;color:var(--text-muted)}.core-slot code{color:var(--text);background:var(--bg);padding:1px 4px;border-radius:3px;font-size:.75rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;width:100%;max-width:480px}.modal h2{font-size:1.1rem;margin-bottom:16px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:.8rem;font-weight:500;color:var(--text-muted);margin-bottom:4px}.form-group select{width:100%;padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:.85rem;font-family:inherit}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.error-banner{background:color-mix(in srgb,var(--danger) 15%,transparent);border:1px solid var(--danger);color:var(--danger);padding:10px 16px;border-radius:var(--radius);margin-bottom:16px;font-size:.85rem}.loading{display:flex;align-items:center;justify-content:center;min-height:50vh;color:var(--text-muted)}
