@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";
:root{--bg-primary:#f1f5f9;--bg-secondary:#fff;--bg-card:#fff;--bg-card-hover:#fafbfc;--bg-input:#fff;--sidebar-bg:#1e293b;--sidebar-border:#ffffff12;--sidebar-link:#94a3b8;--sidebar-link-hover-bg:#ffffff12;--sidebar-link-hover:#e2e8f0;--sidebar-link-active-bg:#6366f133;--sidebar-link-active:#a5b4fc;--border:#e2e8f0;--border-focus:#4f46e5;--text-primary:#0f172a;--text-secondary:#64748b;--text-muted:#94a3b8;--accent:#4f46e5;--accent-hover:#4338ca;--accent-ring:#4f46e51f;--accent-soft:#eef2ff;--success:#15803d;--success-soft:#dcfce7;--warning:#92400e;--warning-soft:#fef3c7;--danger:#b91c1c;--danger-strong:#991b1b;--danger-soft:#fef2f2;--danger-border:#fecaca;--info:#1d4ed8;--info-soft:#dbeafe;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "Fira Mono", monospace;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:14px;--transition-fast:.15s ease;--shadow-card:0 1px 3px #0000000a;--shadow-modal:0 4px 24px #00000012}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-layout{min-height:100vh;display:flex}.sidebar{background:var(--sidebar-bg);z-index:100;flex-direction:column;width:240px;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-header{border-bottom:1px solid var(--sidebar-border);padding:22px 20px 18px}.sidebar-logo{letter-spacing:-.01em;color:#fff;align-items:center;gap:10px;font-size:16px;font-weight:700;display:flex}.sidebar-logo-dot{background:var(--accent);color:#fff;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;font-weight:700;display:inline-flex}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:12px 0;display:flex;overflow-y:auto}.nav-link{border-radius:var(--radius-md);color:var(--sidebar-link);transition:all var(--transition-fast);align-items:center;gap:10px;margin:0 8px;padding:10px 16px;font-size:13.5px;font-weight:500;text-decoration:none;display:flex}.nav-link:hover{background:var(--sidebar-link-hover-bg);color:var(--sidebar-link-hover)}.nav-link.active{background:var(--sidebar-link-active-bg);color:var(--sidebar-link-active)}.nav-link-icon{flex-shrink:0;justify-content:center;align-items:center;width:18px;display:inline-flex}.nav-link-icon svg{width:16px;height:16px}.sidebar-footer{border-top:1px solid var(--sidebar-border);padding:12px 8px}.sidebar-user{color:var(--sidebar-link);align-items:center;gap:10px;padding:8px 14px;font-size:13px;display:flex}.sidebar-user-avatar{background:var(--sidebar-link-active-bg);width:28px;height:28px;color:var(--sidebar-link-active);border-radius:50%;justify-content:center;align-items:center;font-size:12.5px;font-weight:600;display:flex}.logout-btn{border-radius:var(--radius-md);color:var(--sidebar-link);font:inherit;cursor:pointer;width:100%;transition:all var(--transition-fast);background:0 0;border:none;align-items:center;gap:10px;margin-top:2px;padding:9px 14px;font-size:13px;display:flex}.logout-btn:hover{color:#fca5a5;background:#ef44441f}.logout-btn svg{width:15px;height:15px}.main-content{flex:1;max-width:1120px;margin-left:240px;padding:32px 40px 48px}.page-header{margin-bottom:24px}.page-title{letter-spacing:-.02em;margin-bottom:4px;font-size:24px;font-weight:700}.page-subtitle{color:var(--text-secondary);font-size:13.5px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:20px 24px}.card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;display:flex}.card-title{color:var(--text-primary);font-size:15px;font-weight:600}.form-group{margin-bottom:18px}.form-label{color:var(--text-primary);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.form-label-required:after{content:" *";color:var(--danger)}.form-input,.form-select,.form-textarea{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text-primary);font-family:var(--font-sans);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;padding:8px 11px;font-size:13.5px}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-ring)}.form-input::placeholder{color:var(--text-muted)}.form-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%2364748b' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 5.646a.5.5 0 0 1 .708 0L8 8.293l2.646-2.647a.5.5 0 0 1 .708.708l-3 3a.5.5 0 0 1-.708 0l-3-3a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:32px}.form-hint{color:var(--text-secondary);margin-top:4px;font-size:12px;line-height:1.4}.form-warning{color:var(--warning);background:var(--warning-soft);border-radius:var(--radius-sm);margin-top:6px;padding:5px 9px;font-size:12px;line-height:1.45}.form-warning.form-warning-danger{color:var(--danger-strong);background:var(--danger-soft)}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.btn{border-radius:var(--radius-md);font-family:var(--font-sans);cursor:pointer;transition:all var(--transition-fast);border:1px solid #0000;justify-content:center;align-items:center;gap:7px;padding:8px 16px;font-size:13.5px;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover:not(:disabled){color:var(--accent);background:var(--accent-soft)}.btn-sm{padding:5px 12px;font-size:12.5px}.btn-lg{padding:11px 24px;font-size:14px}.btn:disabled{opacity:.55;cursor:not-allowed}.url-output{border:1px solid var(--border);border-radius:var(--radius-md);background:#f8fafc;margin-top:8px;padding:16px;position:relative}.url-output-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:8px;font-size:11px;font-weight:600}.url-output-text{font-family:var(--font-mono);color:var(--accent);word-break:break-all;font-size:12.5px;line-height:1.7}.url-output-actions{gap:8px;margin-top:12px;display:flex}.table-wrapper{-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:var(--radius-lg);overflow-x:auto}.table{border-collapse:collapse;background:var(--bg-secondary);width:100%;font-size:13.5px}.table th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);white-space:nowrap;background:#f8fafc;padding:11px 16px;font-size:11px;font-weight:600}.table td{border-bottom:1px solid var(--border);color:var(--text-secondary);vertical-align:middle;padding:11px 16px;font-size:13.5px}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:var(--bg-card-hover)}.table-mono{font-family:var(--font-mono);font-size:12.5px}.badge{text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-block}.badge-success{background:var(--success-soft);color:var(--success)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-danger{background:var(--danger-soft);color:var(--danger-strong)}.badge-info{background:var(--info-soft);color:var(--info)}.badge-muted{color:#475569;background:#f1f5f9}.tags-container{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);cursor:text;min-height:40px;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;display:flex}.tags-container:focus-within{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-ring)}.tag{background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:500;display:inline-flex}.tag-remove{cursor:pointer;opacity:.55;transition:opacity var(--transition-fast);font-size:13px;line-height:1}.tag-remove:hover{opacity:1}.tag-input{color:var(--text-primary);font-family:var(--font-sans);background:0 0;border:none;outline:none;flex:1;min-width:100px;font-size:13.5px}.tag-input::placeholder{color:var(--text-muted)}.alert{border-radius:var(--radius-md);border:1px solid #0000;margin-bottom:14px;padding:10px 14px;font-size:13px}.alert-success{background:var(--success-soft);color:var(--success);border-color:#bbf7d0}.alert-warning{background:var(--warning-soft);color:var(--warning);border-color:#fde68a}.alert-error{background:var(--danger-soft);color:var(--danger-strong);border-color:var(--danger-border)}.login-page{background:var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:400px;box-shadow:var(--shadow-modal);padding:40px}.login-title{letter-spacing:-.02em;text-align:center;margin-bottom:5px;font-size:22px;font-weight:700}.login-subtitle{text-align:center;color:var(--text-secondary);margin-bottom:30px;font-size:13.5px}.login-error{background:var(--danger-soft);color:var(--danger-strong);border:1px solid var(--danger-border);border-radius:var(--radius-md);text-align:center;margin-bottom:20px;padding:10px 12px;font-size:13.5px}.empty-state{text-align:center;color:var(--text-secondary);border:1px dashed var(--border);border-radius:var(--radius-lg);padding:48px 24px}.empty-state-text{font-size:14px}.stats-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:20px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:18px 20px}.stat-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-bottom:2px;font-size:26px;font-weight:700}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}@media (max-width:768px){.sidebar{display:none}.main-content{margin-left:0;padding:20px}.form-row{grid-template-columns:1fr}}
