@import url('https://fonts.googleapis.com/css2?family=Hind+Siliguri:wght@400;500;600;700;800&display=swap');

:root {
    --bg: #f4f7fb;
    --bg-2: #edf3fb;
    --surface: rgba(255,255,255,.92);
    --surface-strong: #ffffff;
    --surface-soft: #f8fbff;
    --text: #0f172a;
    --muted: #64748b;
    --line: #dbe5f2;
    --primary: #0f172a;
    --primary-2: #2563eb;
    --primary-3: #0ea5e9;
    --success: #0f766e;
    --warning: #b45309;
    --danger: #dc2626;
    --shadow: 0 20px 55px rgba(15, 23, 42, .08);
    --shadow-lg: 0 30px 80px rgba(15, 23, 42, .12);
    --radius: 24px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: "Hind Siliguri", system-ui, sans-serif;
    color: var(--text);
    background:
        radial-gradient(circle at top left, rgba(37,99,235,.18), transparent 28rem),
        radial-gradient(circle at top right, rgba(14,165,233,.14), transparent 24rem),
        linear-gradient(180deg, #f9fbff 0%, var(--bg) 40%, var(--bg-2) 100%);
    line-height: 1.65;
}
a { color: inherit; }
.shell { width: min(1280px, calc(100% - 34px)); margin-inline: auto; }
.app-header {
    position: sticky; top: 0; z-index: 50;
    background: rgba(255,255,255,.72);
    backdrop-filter: blur(22px);
    border-bottom: 1px solid rgba(219,229,242,.9);
}
.header-shell {
    min-height: 84px; display:flex; align-items:center; justify-content:space-between; gap:18px;
}
.brand {
    display:flex; align-items:center; gap:14px; text-decoration:none;
}
.brand-mark {
    width: 54px; height:54px; border-radius:18px; display:grid; place-items:center;
    background: linear-gradient(135deg, var(--primary), var(--primary-2));
    color:#fff; font-weight:800; letter-spacing:.04em; box-shadow: 0 18px 32px rgba(37,99,235,.28);
}
.brand strong { display:block; font-size:22px; line-height:1.05; }
.brand small { display:block; color:var(--muted); font-size:12px; margin-top:4px; }
.main-nav { display:flex; align-items:center; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
.main-nav a {
    text-decoration:none; padding: 11px 16px; min-height:44px; border-radius:999px;
    color:#334155; font-weight:700; border:1px solid transparent; transition:.18s ease;
}
.main-nav a:hover, .main-nav a.active {
    color:#fff; background: linear-gradient(135deg, var(--primary), var(--primary-2));
    box-shadow: 0 14px 28px rgba(37,99,235,.20);
}
.page { padding: 28px 0 52px; }
.hero {
    display:grid; grid-template-columns: minmax(0,1.45fr) minmax(280px,.55fr); gap:24px; margin-bottom:24px;
}
.hero-panel, .card, .stat-card {
    background: var(--surface); border:1px solid rgba(219,229,242,.92); border-radius: var(--radius);
    box-shadow: var(--shadow); position:relative; overflow:hidden;
}
.hero-panel, .card { padding: 28px; margin-bottom: 22px; }
.hero-panel.dark {
    color:#fff;
    background: linear-gradient(135deg, #0f172a 0%, #1e40af 56%, #0ea5e9 100%);
    box-shadow: var(--shadow-lg);
}
.hero-panel.dark::before, .hero-panel.dark::after {
    content:""; position:absolute; border-radius:50%; background: rgba(255,255,255,.08);
}
.hero-panel.dark::before { width: 220px; height:220px; right:-60px; top:-70px; }
.hero-panel.dark::after { width: 140px; height:140px; right:110px; bottom:-45px; }
.eyebrow {
    display:inline-flex; align-items:center; gap:8px; padding:6px 12px; border-radius:999px;
    background:#eef6ff; color:#1d4ed8; font-size:13px; font-weight:800; border:1px solid #bfd7ff;
    margin-bottom:14px;
}
.hero-panel.dark .eyebrow { background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.18); color:#dbeafe; }
h1,h2,h3 { margin:0 0 12px; line-height:1.22; letter-spacing:-.01em; }
h1 { font-size: clamp(30px, 4vw, 48px); }
h2 { font-size: 28px; }
h3 { font-size: 20px; }
p { margin:0 0 14px; color:#475569; }
.hero-panel.dark p { color:#dbeafe; }
.actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:18px; }
.btn, button {
    display:inline-flex; align-items:center; justify-content:center; gap:8px; cursor:pointer;
    min-height:46px; padding: 11px 17px; border:0; border-radius: 14px; font-weight:800; font-size:15px;
    font-family:inherit; text-decoration:none; color:#fff; background: linear-gradient(135deg, var(--primary), #1f2937);
    box-shadow: 0 14px 30px rgba(15,23,42,.12); transition: .18s ease;
}
.btn:hover, button:hover { transform: translateY(-1px); box-shadow: 0 18px 32px rgba(15,23,42,.16); }
.btn.secondary { background: linear-gradient(135deg, #334155, #475569); }
.btn.success { background: linear-gradient(135deg, #0f766e, #059669); }
.btn.warning { background: linear-gradient(135deg, #b45309, #f59e0b); }
.btn.danger { background: linear-gradient(135deg, #b91c1c, #ef4444); }
.btn.light { background:#fff; color: var(--text); }
.grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:18px; }
.stats { display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:16px; }
.stat-card { padding: 20px; }
.stat-card strong { display:block; font-size:30px; margin-bottom:4px; }
.stat-card span { color: var(--muted); font-weight:700; }
.card > h2:first-child { margin-top:0; }
.table-wrap { overflow:auto; border-radius: 18px; border:1px solid var(--line); background:#fff; }
.table { width:100%; border-collapse: collapse; min-width: 760px; }
.table th, .table td { padding: 15px 16px; border-bottom:1px solid var(--line); vertical-align: top; }
.table thead th { background:#f8fbff; color:#0f172a; font-size:14px; text-align:left; }
.table tbody tr:hover { background:#fbfdff; }
.empty-state, .notice, .error {
    padding: 16px 18px; border-radius: 16px; border:1px solid var(--line); background:#fff;
}
.empty-state { background:#fbfdff; color:#475569; }
.notice { background:#eefcf8; border-color:#b8f1dd; color:#0f766e; }
.error { background:#fef2f2; border-color:#fecaca; color:#b91c1c; }
label { display:block; margin-bottom: 8px; font-size:14px; font-weight:800; color:#334155; }
input[type="text"], input[type="number"], input[type="file"], input[type="date"], input[type="time"], select, textarea, input:not([type]), input[type="password"] {
    width:100%; min-height:50px; padding: 12px 14px; border-radius: 14px; border:1px solid #d7e2ee; background:#fff;
    font: inherit; color: var(--text); outline:none; box-shadow: inset 0 1px 2px rgba(15,23,42,.02);
}
input:focus, select:focus, textarea:focus {
    border-color:#60a5fa; box-shadow: 0 0 0 4px rgba(96,165,250,.14); background:#fff;
}
.inline-form { display:inline-flex; margin:0; }
.logo-preview-card {
    margin-top: 20px; padding: 18px; border-radius: 18px; border:1px dashed #bfd7ff;
    background: linear-gradient(180deg, #f8fbff 0%, #eef6ff 100%);
}
.logo-preview-frame {
    margin-top: 10px; width: 168px; height:168px; border-radius: 18px; border:1px solid var(--line);
    display:grid; place-items:center; background:#fff; overflow:hidden;
}
.logo-preview-frame img { max-width:100%; max-height:100%; object-fit: contain; }
.logo-preview-help { margin-top: 10px; font-size:14px; color: var(--muted); }
.answer-toolbar {
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
    padding:16px 18px; margin-bottom: 18px; background: linear-gradient(180deg,#f8fbff 0%,#eef6ff 100%);
    border:1px solid #cde0ff; border-radius: 18px;
}
.answer-toolbar-group { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.quick-help {
    padding: 14px 16px; border-radius: 16px; background:#f0f9ff; color:#0c4a6e; border:1px solid #bae6fd; margin-bottom:16px;
}
.answer-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(160px,1fr)); gap:14px; }
.answer-card {
    padding: 14px; border-radius: 18px; border:1px solid var(--line); background:#fff; transition:.18s ease; outline:none;
    box-shadow: 0 8px 20px rgba(15,23,42,.04);
}
.answer-card.active-card { border-color:#60a5fa; box-shadow: 0 0 0 4px rgba(96,165,250,.16); }
.answer-card.answered { background:#f0fdf4; border-color:#bbf7d0; }
.answer-title { font-weight:800; margin-bottom:10px; }
.choice-group { display:flex; gap:8px; flex-wrap:wrap; }
.choice-input { position:absolute; opacity:0; pointer-events:none; }
.choice-btn {
    min-width:42px; height:42px; border-radius: 12px; border:1px solid #cbd5e1; background:#fff;
    display:inline-flex; align-items:center; justify-content:center; font-weight:800; cursor:pointer; user-select:none;
}
.choice-input:checked + .choice-btn { background: linear-gradient(135deg, var(--primary), var(--primary-2)); color:#fff; border-color:#1d4ed8; }
.sticky-actions {
    position: sticky; bottom: 14px; z-index:5; background: rgba(255,255,255,.95); backdrop-filter: blur(12px);
    padding: 14px; border:1px solid var(--line); border-radius: 18px;
}
.upload-zone {
    border: 2px dashed #bfdbfe; border-radius: 24px; background: linear-gradient(180deg,#f8fbff 0%,#eef6ff 100%);
    padding: 30px; text-align:center; transition:.18s ease;
}
.upload-zone.dragover { border-color:#2563eb; background:#eff6ff; }
.upload-zone-content { color:#475569; }
.file-list, .selected-files { margin-top: 14px; padding: 14px 16px; background:#fff; border:1px solid var(--line); border-radius: 16px; }
.progress-wrap { width:100%; height:16px; border-radius:999px; background:#e5edf7; overflow:hidden; }
.progress-bar { height:100%; background: linear-gradient(90deg, #2563eb, #10b981); border-radius:999px; }
.progress-text { font-weight:800; margin-top: 10px; }
.footer-shell {
    display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; padding: 0 0 30px; color:#64748b; font-size:14px;
}
.no-print {}
@media (max-width: 980px) {
    .hero, .grid, .stats { grid-template-columns: 1fr; }
    .header-shell { flex-direction: column; align-items: flex-start; padding: 12px 0; }
    .main-nav { justify-content:flex-start; }
}
@media (max-width: 640px) {
    .shell { width: min(100% - 20px, 1280px); }
    .card, .hero-panel { padding: 18px; }
    .answer-grid { grid-template-columns: repeat(auto-fill, minmax(132px,1fr)); }
    .table { min-width: 620px; }
}
@media print {
    .no-print, .app-header, .app-footer { display:none !important; }
    body { background:#fff; }
    .page { padding:0; }
}
