*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:#0f0f11;color:#e2e2e2;min-height:100vh}
a{color:#7c8cf8;text-decoration:none}
input,select{background:#1e1e24;border:1px solid #2e2e38;color:#e2e2e2;border-radius:6px;padding:8px 12px;font-size:14px;outline:none;transition:border .15s}
input:focus,select:focus{border-color:#7c8cf8}
button{cursor:pointer;border:none;border-radius:6px;font-size:14px;padding:8px 16px;transition:opacity .15s}
button:hover{opacity:.85}
.btn-primary{background:#7c8cf8;color:#fff}
.btn-danger{background:#e05c5c;color:#fff}
.btn-sm{padding:4px 10px;font-size:12px}
.btn-ghost{background:transparent;border:1px solid #2e2e38;color:#aaa}
.btn-ghost:hover{border-color:#7c8cf8;color:#7c8cf8;opacity:1}
.hidden{display:none}
.flex-1{flex:1}
.center-text{text-align:center}
.full-width{width:100%}
.input-reset{width:auto;padding:0;border:none;background:none;accent-color:#7c8cf8}
.section-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}
.input-row{display:flex;gap:8px;margin-bottom:1rem}
.action-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.form-actions{display:flex;align-items:center;gap:12px;margin-top:1rem}
.stack-top{margin-top:1rem}
.stack-top-lg{margin-top:1.5rem}
.stack-top-xl{margin-top:2rem}
.card-tight{margin-bottom:1.5rem}
.card-reset{margin:0}
.grow{flex:1}
.span-2{grid-column:span 2}
.field-reset{margin:0}
.muted{color:#555}
.muted-note{color:#666;font-size:12px}
.error-inline{color:#e05c5c;font-size:13px;display:none}
.error-inline.align-center{align-self:center}
.toggle-label{display:none;align-items:center;gap:6px;font-size:13px;color:#aaa;cursor:pointer}
.toggle-label.visible{display:flex}
.toggle-label.stack-top{margin-top:.5rem}
.logo{display:block}
.page-shell{display:flex;flex-direction:column;min-height:100vh}
.dashboard-view{display:none;flex-direction:column;flex:1}
#app{display:flex;flex-direction:column;min-height:100vh}
nav{background:#15151a;border-bottom:1px solid #1e1e28;padding:0 2rem;display:flex;align-items:center;justify-content:space-between;height:56px}
nav .brand{font-weight:700;font-size:1.1rem;color:#fff;letter-spacing:-.3px}
nav .user-info{display:flex;align-items:center;gap:12px;font-size:13px;color:#888}
main{flex:1;padding:2rem;max-width:1100px;margin:0 auto;width:100%}
h2{font-size:1.1rem;font-weight:600;color:#fff;margin-bottom:1rem}
#login-view{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:2rem}
.login-card{background:#15151a;border:1px solid #1e1e28;border-radius:12px;padding:2rem;width:100%;max-width:380px}
.login-card h1{font-size:1.3rem;margin-bottom:1.5rem;color:#fff}
.login-actions{display:flex;gap:8px;margin-top:1.2rem}
.form-group{margin-bottom:1rem}
.form-group label{display:block;font-size:12px;color:#888;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}
.form-group input{width:100%}
.error-msg{color:#e05c5c;font-size:13px;margin-top:.5rem}
.new-link-card{background:#15151a;border:1px solid #1e1e28;border-radius:10px;padding:1.5rem;margin-bottom:2rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
@media(max-width:600px){.form-row{grid-template-columns:1fr}}
.table-wrap{background:#15151a;border:1px solid #1e1e28;border-radius:10px;overflow:hidden}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;padding:10px 14px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#666;border-bottom:1px solid #1e1e28;font-weight:500}
td{padding:12px 14px;border-bottom:1px solid #1a1a22;vertical-align:middle}
tr:last-child td{border-bottom:none}
tr:hover td{background:rgba(255,255,255,.02)}
.slug-cell{font-family:monospace;color:#7c8cf8;font-size:13px}
.target-cell{color:#888;font-size:12px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.badge{display:inline-block;background:#1e1e28;border-radius:4px;padding:2px 7px;font-size:11px;font-family:monospace;color:#aaa}
.actions{display:flex;gap:6px;white-space:nowrap}
.redirects-desktop{display:block}
.redirects-mobile{display:none}
.redirect-cards{display:grid;gap:12px;padding:14px}
.redirect-card{background:#15151a;border:1px solid #1e1e28;border-radius:12px;padding:14px}
.redirect-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.redirect-card-url{min-width:0}
.redirect-card-url a{display:block;font-family:monospace;font-size:13px;line-height:1.5;word-break:break-word}
.redirect-card-meta{display:grid;gap:10px}
.redirect-meta-row{display:grid;gap:4px}
.redirect-meta-label{font-size:11px;color:#666;text-transform:uppercase;letter-spacing:.5px}
.redirect-meta-value{font-size:13px;color:#ccc}
.redirect-meta-value.target{word-break:break-word}
.redirect-card .actions{margin-top:14px;flex-wrap:wrap;white-space:normal}
@media(max-width:760px){
nav{padding:0 1rem}
main{padding:1rem}
.redirects-desktop{display:none}
.redirects-mobile{display:block}
.table-wrap.redirects-mobile{overflow:visible}
.redirect-cards{padding:12px}
}
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:100;justify-content:center;align-items:flex-start;padding-top:80px}
.modal-overlay.open{display:flex}
.modal{background:#15151a;border:1px solid #1e1e28;border-radius:12px;width:100%;max-width:700px;max-height:80vh;display:flex;flex-direction:column}
.modal-head{padding:1rem 1.5rem;border-bottom:1px solid #1e1e28;display:flex;justify-content:space-between;align-items:center}
.modal-head h3{font-size:1rem;color:#fff}
.modal-body{padding:1.5rem;overflow-y:auto;flex:1}
.modal-body-copy{font-size:14px;line-height:1.7;color:#ccc}
.modal-body-qr{text-align:center}
.click-row{display:grid;grid-template-columns:160px 120px 1fr;gap:8px;font-size:12px;padding:8px 0;border-bottom:1px solid #1a1a22;color:#aaa}
.click-row:last-child{border-bottom:none}
.click-row .ts{color:#666;font-family:monospace}
.click-row .ip{color:#7c8cf8;font-family:monospace}
.empty{color:#555;font-size:14px;padding:1rem 0}
.stat-summary{display:flex;gap:1rem;margin-bottom:1rem}
.stat-box{background:#1e1e28;border-radius:8px;padding:12px 16px;flex:1}
.stat-box .num{font-size:1.5rem;font-weight:700;color:#fff}
.stat-box .lbl{font-size:11px;color:#666;text-transform:uppercase;letter-spacing:.5px}
.modal.narrow{max-width:440px}
.audit-row{padding:10px 0;border-bottom:1px solid #1a1a22;display:grid;grid-template-columns:110px 1fr;gap:12px;align-items:start}
.audit-row:last-child{border-bottom:none}
.audit-action{font-weight:600;text-transform:uppercase;letter-spacing:.4px;font-size:11px}
.audit-action.created{color:#6fcf6f}
.audit-action.updated{color:#7c8cf8}
.audit-action.deleted{color:#e05c5c}
.diff-line{display:flex;align-items:baseline;gap:6px;font-size:12px;padding:2px 0;flex-wrap:wrap}
.diff-label{color:#555;font-size:11px;text-transform:uppercase;letter-spacing:.3px;min-width:44px}
.diff-old{color:#e05c5c;font-family:monospace;text-decoration:line-through;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.diff-new{color:#6fcf6f;font-family:monospace;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.diff-arrow{color:#444}
.tab-bar{display:flex;gap:4px;margin-bottom:2rem;border-bottom:1px solid #1e1e28;padding-bottom:0}
.tab-btn{background:none;border:none;border-bottom:2px solid transparent;border-radius:0;color:#666;font-size:14px;padding:8px 16px;margin-bottom:-1px;transition:color .15s,border-color .15s}
.tab-btn:hover{color:#ccc;opacity:1}
.tab-btn.active{color:#fff;border-bottom-color:#7c8cf8}
.analytics-toolbar{display:grid;grid-template-columns:minmax(220px,1.8fr) minmax(130px,1fr) minmax(130px,1fr) auto;gap:12px;align-items:end;margin-bottom:1.5rem}
.analytics-control{display:grid;gap:5px;min-width:0}
.analytics-control label{font-size:11px;color:#666;text-transform:uppercase;letter-spacing:.5px}
.analytics-control select{width:100%}
.analytics-reset{height:35px}
.analytics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}
.analytics-two-col{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:2rem}
@media(max-width:700px){
.analytics-toolbar{grid-template-columns:1fr 1fr}
.analytics-control.wide{grid-column:1 / -1}
.analytics-reset{width:100%;height:auto}
.analytics-grid{grid-template-columns:repeat(2,1fr)}
.analytics-two-col{grid-template-columns:1fr}
}
.section-kicker{font-size:12px;color:#888;text-transform:uppercase;letter-spacing:.5px;margin-bottom:1rem}
.firehose-head{display:grid;grid-template-columns:140px 100px 120px 1fr;gap:8px;font-size:11px;padding:8px 14px;color:#555;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #1e1e28}
.firehose-body{padding:0 14px;max-height:500px;overflow-y:auto}
.firehose-row{display:grid;grid-template-columns:140px 100px 120px 1fr;gap:8px;font-size:12px;padding:8px 0;border-bottom:1px solid #1a1a22;color:#aaa;align-items:start}
.firehose-row:last-child{border-bottom:none}
.firehose-slug{font-family:monospace;color:#7c8cf8;font-size:12px}
.help-steps{padding-left:1.2em;margin:1em 0}
.help-step{margin-bottom:.75em}
.help-code{background:#0e0e14;padding:2px 8px;border-radius:4px;color:#6fcf6f;display:inline-block;margin-top:4px}
.dns-table{margin-top:10px;width:100%;border-collapse:collapse;font-size:12px;font-family:monospace}
.dns-head{text-align:left;color:#555}
.dns-head th{padding:4px 10px 4px 0}
.dns-head th:last-child{padding-right:0}
.dns-sample{background:#0e0e14;color:#ccc}
.dns-sample td{padding:6px 10px}
.dns-sample td:first-child{padding-left:8px;border-radius:4px 0 0 4px}
.dns-sample td:last-child{padding-right:0;border-radius:0 4px 4px 0;color:#6fcf6f}
.qr-url{margin-top:1rem;font-size:13px;color:#888;word-break:break-all}
.verify-result{padding:6px 0 10px;font-size:12px;color:#e05c5c}
.stats-chart-wrap{display:none;margin:1.5rem 0 1rem}
.stats-referers{display:none;margin-bottom:1.5rem}
.domain-table{width:100%;border-collapse:collapse;font-size:13px}
.domain-head th{text-align:left;padding:6px 0;color:#555;font-size:11px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #1e1e28}
.domain-row-domain{padding:10px 0;font-family:monospace;color:#ccc}
.domain-row-status{padding:10px 8px}
.domain-row-actions{padding:10px 0;text-align:right;display:flex;gap:6px;justify-content:flex-end}
.domain-status-verified{color:#6fcf6f;font-size:12px}
.domain-status-pending{color:#f0a500;font-size:12px}
.list-row{display:flex;justify-content:space-between;font-size:13px;padding:4px 0;border-bottom:1px solid #1a1a22}
.list-row-key{color:#ccc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}
.list-row-value{color:#888;flex-shrink:0;margin-left:8px}
.mono-dim{font-family:monospace;color:#666}
.mono-link{font-family:monospace;color:#7c8cf8;font-size:11px}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-agent{color:#555;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.modal-section-title{font-size:12px;color:#888;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem}
.modal-section-title.top-gap{margin-top:1rem}
.modal-section-title.top-gap-lg{margin-top:1.5rem}
.modal-list-row{display:flex;justify-content:space-between;font-size:13px;padding:3px 0;border-bottom:1px solid #1e1e28}
.modal-list-key{color:#ccc}
.modal-list-value{color:#888}
.audit-created-at{color:#555;font-size:11px;font-family:monospace;margin-top:4px}
.verify-result-row td{padding:0}
