:root,[data-theme=light]{--surface: #f5f7fa;--surface-raised: #ffffff;--line: #dbe1ea;--line-strong: #7c8797;--ink: #13245a;--ink-muted: #4f5b70;--brand: #1559d6;--on-brand: #ffffff;--accent: #f58025;--danger: #b42318}:root{--space-1: 4px;--space-2: 8px;--space-4: 16px;--space-6: 24px;--radius-sm: 4px;--radius-md: 8px;--radius-pill: 999px;--font-sans: "Noto Sans", "Noto Sans Devanagari", system-ui, sans-serif;--font-mono: "Noto Sans Mono", ui-monospace, monospace}.display{font-family:var(--font-sans);font-size:28px;line-height:36px;font-weight:600}.title{font-family:var(--font-sans);font-size:20px;line-height:28px;font-weight:600}.heading{font-family:var(--font-sans);font-size:16px;line-height:24px;font-weight:600}.body{font-family:var(--font-sans);font-size:15px;line-height:24px;font-weight:400}.body-sm{font-family:var(--font-sans);font-size:13px;line-height:20px;font-weight:400}.label{font-family:var(--font-sans);font-size:12px;line-height:16px;font-weight:600;letter-spacing:.01em}.data{font-family:var(--font-mono);font-size:13px;line-height:20px;font-weight:500}.fl-row{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center;padding:var(--space-4);font-family:var(--font-sans)}.fl-col{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4);max-width:360px;font-family:var(--font-sans)}.fl-btn{font:600 15px/24px var(--font-sans);min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);cursor:pointer}.fl-btn-primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.fl-btn-danger{color:var(--danger);border-color:var(--danger)}.fl-btn-sm{min-height:32px;font-size:13px;padding:0 var(--space-2)}.fl-btn:focus-visible,.fl-input:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.fl-btn:disabled{opacity:.5;cursor:not-allowed}.fl-field{display:flex;flex-direction:column;gap:var(--space-1);font-family:var(--font-sans)}.fl-label{font:600 12px/16px var(--font-sans);letter-spacing:.01em;color:var(--ink-muted)}.fl-input{font:400 15px/24px var(--font-sans);min-height:44px;padding:0 var(--space-2);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--ink)}.fl-field-error .fl-input{border-color:var(--danger)}.fl-hint{font:400 13px/20px var(--font-sans);color:var(--ink-muted)}.fl-error{font:600 13px/20px var(--font-sans);color:var(--danger)}.fl-pill{display:inline-flex;align-items:center;gap:var(--space-1);font:600 12px/16px var(--font-sans);padding:2px var(--space-2);border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface-raised);color:var(--ink)}.fl-pill:before{content:"";width:8px;height:8px;border-radius:var(--radius-pill);background:var(--ink-muted)}.fl-pill-brand:before{background:var(--brand)}.fl-pill-attention{background:var(--accent);border-color:var(--accent)}.fl-pill-attention:before{background:var(--ink)}.fl-pill-danger{color:var(--danger);border-color:var(--danger)}.fl-pill-danger:before{background:var(--danger)}.fl-card{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4);font-family:var(--font-sans);color:var(--ink)}.fl-card-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.fl-card-title{margin:0;font:600 16px/24px var(--font-sans)}.fl-table{width:100%;border-collapse:collapse;background:var(--surface-raised);font:400 13px/20px var(--font-sans);color:var(--ink)}.fl-table th{text-align:left;font:600 12px/16px var(--font-sans);color:var(--ink-muted);padding:var(--space-2);border-bottom:1px solid var(--line-strong)}.fl-table td{padding:var(--space-2);border-bottom:1px solid var(--line)}.fl-table .num{text-align:right}.fl-table .mono{font:500 13px/20px var(--font-mono)}html,body{margin:0;background:var(--surface);color:var(--ink);font-family:var(--font-sans)}a{color:var(--brand)}.fl-check{display:flex;align-items:center;gap:var(--space-2);min-height:44px;font:400 15px/24px var(--font-sans);cursor:pointer}.fl-check input{width:20px;height:20px;margin:0;accent-color:var(--brand)}.fl-linkbtn{background:none;border:0;padding:0;font:600 13px/20px var(--font-sans);color:var(--brand);text-decoration:underline;cursor:pointer}.fl-linkbtn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.login{min-height:100vh;display:flex;flex-wrap:wrap}.login-brand{flex:1 1 420px;min-height:320px;background:var(--brand);color:var(--on-brand);padding:48px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-between;gap:32px}.login-dots{display:grid;grid-template-columns:repeat(8,4px);gap:12px}.login-dots span{width:4px;height:4px;border-radius:var(--radius-pill);background:var(--on-brand);opacity:.55}.login-main{flex:999 1 480px;min-width:0;display:flex;align-items:center;justify-content:center;padding:48px 24px;box-sizing:border-box}.login-card{width:100%;max-width:400px;background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-md);padding:32px;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--space-4)}.login-card .fl-btn{width:100%}.shell{min-height:100vh;display:flex;flex-direction:column}.shell-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4);padding:12px var(--space-6);background:var(--surface-raised);border-bottom:1px solid var(--line)}.shell-body{flex:1;display:flex;flex-wrap:wrap}.shell-nav{flex:1 1 200px;max-width:240px;padding:var(--space-4);box-sizing:border-box;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:4px}.shell-nav a,.shell-nav span{display:block;padding:10px 12px;font:400 15px/24px var(--font-sans);color:var(--ink-muted);text-decoration:none;border-radius:var(--radius-md)}.shell-nav a[aria-current=page]{background:var(--surface-raised);border:1px solid var(--line);font-weight:600;color:var(--brand)}.shell-main{flex:999 1 560px;min-width:0;padding:var(--space-6);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--space-4)}.muted{color:var(--ink-muted)}
