:root{--color-bg:#f5f6f8;--color-card:#fff;--color-text:#1f2328;--color-muted:#6b7280;--color-border:#e5e7eb;--color-input-bg:#fff;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-accent-soft:#2563eb33;--color-error-bg:#fef2f2;--color-error-text:#b91c1c;--radius:8px;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;min-height:100vh;margin:0}.login-page{place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;max-width:400px;padding:32px 28px;box-shadow:0 1px 2px #1018280f}.login-card h1{letter-spacing:-.01em;margin:0 0 4px;font-size:1.5rem;font-weight:600}.login-logo{width:auto;height:48px;display:block}.login-subtitle{color:var(--color-muted);margin:0 0 24px;font-size:.9rem}.login-form{gap:16px;display:grid}.login-form label{gap:6px;font-size:.875rem;font-weight:500;display:grid}.login-form input{font:inherit;border:1px solid var(--color-border);background:var(--color-input-bg);color:var(--color-text);border-radius:6px;padding:10px 12px;font-weight:400;transition:border-color .15s,box-shadow .15s}.login-form input::placeholder{color:#9ca3af}.login-form input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);outline:none}.login-error{background:var(--color-error-bg);color:var(--color-error-text);border-radius:6px;margin:0;padding:10px 12px;font-size:.875rem}.login-error[hidden]{display:none}.login-actions{gap:10px;margin-top:4px;display:grid}.btn{font:inherit;text-align:center;cursor:pointer;border:1px solid #0000;border-radius:6px;padding:10px 16px;font-size:.9rem;font-weight:500;text-decoration:none;transition:background-color .15s,opacity .15s;display:inline-block}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn-secondary{background:var(--color-card);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-bg)}.btn-danger{background:var(--color-card);color:var(--color-error-text);border-color:var(--color-border)}.btn-danger:hover:not(:disabled){background:var(--color-error-bg)}.btn-small{padding:6px 10px;font-size:.8rem}.btn:disabled{opacity:.6;cursor:wait}.btn:focus-visible{outline:3px solid var(--color-accent-soft);outline-offset:2px}.dashboard-page{max-width:1200px;margin:0 auto;padding:24px 16px}.dashboard-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.dashboard-header h1{letter-spacing:-.01em;margin:0;font-size:1.5rem;font-weight:600}.dashboard-title{align-items:center;gap:16px;display:flex}.header-logo{width:auto;height:32px;display:block}.create-page{max-width:560px}.page-top{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.form-title{letter-spacing:-.01em;margin:0 0 24px;font-size:1.5rem;font-weight:600}.form-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;padding:24px 28px;box-shadow:0 1px 2px #1018280f}.dashboard-actions{align-items:center;gap:8px;display:flex}.links-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);overflow-x:auto;box-shadow:0 1px 2px #1018280f}.links-table{border-collapse:collapse;width:100%;font-size:.9rem}.links-table th{text-align:left;color:var(--color-muted);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:12px 16px;font-weight:500}.links-table td{vertical-align:middle;border-bottom:1px solid var(--color-border);word-break:break-all;padding:12px 16px}.links-table tr:last-child td{border-bottom:none}.links-table a{color:var(--color-accent)}.links-table td a{white-space:nowrap}.link-actions{white-space:nowrap;flex-wrap:nowrap;gap:8px;display:flex}.empty-state{text-align:center;padding:48px 24px}.empty-state[hidden]{display:none}.empty-state h2{margin:0 0 8px;font-size:1.25rem;font-weight:600}.empty-state p{color:var(--color-muted);margin:0 0 20px;font-size:.9rem}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=479px){.login-card{padding:24px 20px}}
