@charset "UTF-8";:root{--navy: #13294B;--navy-2: #1C3A66;--navy-ink: #0E1F3A;--green: #1E7A46;--green-2: #16663A;--green-soft: #E8F2EA;--green-line: #CFE3D4;--red: #B3261E;--red-soft: #FBEAE8;--amber: #A86A12;--amber-soft: #FCF3E3;--amber-line: #F0D9AE;--bg: #F4F3EE;--card: #FFFFFF;--line: #E4E2DA;--line-2: #EEEDE7;--hair: rgba(19, 41, 75, .08);--emerald: #10B981;--ink: #13294B;--text: #2B2F36;--muted: #6B7079;--muted-2: #9A9EA6;--plate-a: #F59A2B;--plate-b: #E4572E;--radius: 18px;--radius-sm: 12px;--shadow: 0 1px 2px rgba(19, 41, 75, .04), 0 6px 24px rgba(19, 41, 75, .07);--shadow-lg: 0 2px 4px rgba(19, 41, 75, .05), 0 18px 48px rgba(19, 41, 75, .14);--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-size:15px;line-height:1.45}a{color:inherit}button{font-family:inherit}input,select,textarea{font-family:inherit;font-size:16px}h1,h2,h3{color:var(--ink);margin:0;letter-spacing:-.022em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:56px;padding:0 20px;border-radius:14px;border:1px solid transparent;font-weight:700;font-size:16px;cursor:pointer;text-decoration:none;transition:transform .16s cubic-bezier(.3,.7,.4,1),background .15s ease,box-shadow .15s ease,opacity .15s}.btn:active:not(:disabled){transform:scale(.96)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.btn-sm{min-height:38px;font-size:14px;width:auto;padding:0 14px;border-radius:10px}.btn.btn-auto{width:auto}.btn-primary{background:var(--navy);color:#fff;box-shadow:0 6px 16px #13294b38}.btn-primary:hover:not(:disabled){background:var(--navy-2)}.btn-success{background:var(--green);color:#fff;box-shadow:0 6px 16px #1e7a4640}.btn-success:hover:not(:disabled){background:var(--green-2)}.btn-outline{background:#fff;color:var(--ink);border-color:var(--line)}.btn-outline:hover:not(:disabled){border-color:#cfccc1;background:#fbfbf8}.btn-ghost{background:transparent;color:var(--ink)}.btn-danger-link{background:none;border:0;color:var(--red);font-weight:700;cursor:pointer;font-size:15px;padding:10px}.link{color:var(--green);font-weight:700;text-decoration:none;cursor:pointer;background:none;border:0;padding:0;font-size:inherit}.link:hover{text-decoration:underline}.card{background:var(--card);border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow)}.card-soft{background:var(--green-soft);border:1px solid var(--green-line);border-radius:var(--radius-sm)}.card-muted{background:#efeee8;border:1px solid var(--line);border-radius:var(--radius-sm)}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--green)}.eyebrow.muted{color:var(--muted)}.mono{font-family:var(--mono);font-size:12px;letter-spacing:.02em;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:13px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:13px;color:var(--muted);font-weight:500}.field .hint{font-size:12px;color:var(--muted-2)}.field .err{font-size:12px;color:var(--red);font-weight:600}.input{width:100%;height:50px;padding:0 14px;background-color:#f2f1ec;border:1px solid transparent;border-radius:12px;color:var(--ink);outline:none;transition:border .15s,background .15s,box-shadow .15s}.input:focus{background-color:#fff;border-color:var(--navy);box-shadow:0 0 0 4px #13294b14}.input.mono-in{font-family:var(--mono);font-weight:600;letter-spacing:.04em}.input.invalid{border-color:var(--red);background-color:#fff}select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2313294B' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:8px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.chip-green{background:var(--green-soft);color:var(--green);border:1px solid var(--green-line)}.chip-red{background:var(--red-soft);color:var(--red)}.chip-amber{background:var(--amber-soft);color:var(--amber);border:1px solid var(--amber-line)}.chip-navy{background:#e7ecf4;color:var(--navy)}.chip-gray{background:#efeee8;color:var(--muted)}.dot{width:7px;height:7px;border-radius:50%;background:var(--green);display:inline-block;box-shadow:0 0 #1e7a4680;animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 #1e7a4673}70%{box-shadow:0 0 0 7px #1e7a4600}to{box-shadow:0 0 #1e7a4600}}.fade-up{animation:fadeUp .35s cubic-bezier(.2,.7,.2,1) both}.fade-up.d1{animation-delay:.06s}.fade-up.d2{animation-delay:.12s}.fade-up.d3{animation-delay:.18s}.fade-up.d4{animation-delay:.24s}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.skeleton{background:linear-gradient(90deg,#ecebe5 25%,#f6f5f1 37%,#ecebe5 63%);background-size:400% 100%;animation:shimmer 1.3s ease infinite;border-radius:10px}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.spinner{width:20px;height:20px;border-radius:50%;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;animation:spin .7s linear infinite}.spinner.dark{border-color:#13294b26;border-top-color:var(--navy)}@keyframes spin{to{transform:rotate(360deg)}}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}.table th{text-align:left;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:10px 14px;border-bottom:1px solid var(--line);background:#fafaf7;position:sticky;top:0}.table td{padding:12px 14px;border-bottom:1px solid var(--line-2);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr{transition:background .1s}.table tbody tr.clickable{cursor:pointer}.table tbody tr:hover{background:#fafaf6}.table-wrap{overflow-x:auto;border-radius:var(--radius)}.alert{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;font-size:14px}.alert-red{background:var(--red-soft);color:#7d1b15}.alert-amber{background:var(--amber-soft);color:#74490b;border:1px solid var(--amber-line)}.alert-green{background:var(--green-soft);color:#174f30;border:1px solid var(--green-line)}.alert-navy{background:#e9eef6;color:var(--navy)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.card{border-color:var(--hair)}.dock{position:sticky;bottom:calc(84px + var(--safe-b));z-index:10;margin:18px -18px 0;padding:18px 18px 4px;background:linear-gradient(to top,var(--bg) 70%,rgba(244,243,238,0));display:grid;gap:10px}.flash-ok{position:fixed;inset:0;pointer-events:none;z-index:60;background:radial-gradient(70% 55% at 50% 42%,#10b9814d,#10b98100 70%);animation:flashOk .9s ease-out both}.flash-err{position:fixed;inset:0;pointer-events:none;z-index:60;background:radial-gradient(70% 55% at 50% 42%,#dc262638,#dc262600 70%);animation:flashOk .8s ease-out both}@keyframes flashOk{0%{opacity:0}18%{opacity:1}to{opacity:0}}.slide-up{animation:slideUp .6s cubic-bezier(.16,1.12,.3,1) both}.slide-up.d1{animation-delay:.08s}.slide-up.d2{animation-delay:.16s}.slide-up.d3{animation-delay:.24s}@keyframes slideUp{0%{opacity:0;transform:translateY(48px) scale(.98)}to{opacity:1;transform:none}}.pop-in{animation:popIn .55s cubic-bezier(.2,1.6,.4,1) both .18s}@keyframes popIn{0%{transform:scale(0)}to{transform:scale(1)}}.draw path{stroke-dasharray:30;stroke-dashoffset:30;animation:draw .45s ease-out forwards .45s}@keyframes draw{to{stroke-dashoffset:0}}.ring{position:relative}.ring:after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid currentColor;opacity:0;animation:ring 1.1s ease-out .35s}@keyframes ring{0%{opacity:.45;transform:scale(.85)}to{opacity:0;transform:scale(1.35)}}.shake{animation:shake .5s cubic-bezier(.36,.07,.19,.97) both}@keyframes shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-8px)}40%,60%{transform:translate(8px)}}.skel-blur{filter:blur(.4px);opacity:.9}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
