*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);margin:0;background:var(--color-bg);color:var(--color-text);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--color-link);text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root{--font-sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--color-bg:#f4f6fa;--color-surface:#ffffff;--color-surface-2:#f8fafc;--color-surface-3:#eef2f8;--color-border:#e2e8f0;--color-border-strong:#cbd5e1;--color-text:#0f172a;--color-text-soft:#475569;--color-text-muted:#94a3b8;--color-accent:#ff5a00;--color-accent-hover:#e64f00;--color-accent-soft:#fff1e9;--color-shell:#12172b;--color-shell-text:#e6e9f2;--color-link:#2563eb;--color-danger:#dc2626;--color-danger-soft:#fef2f2;--color-success:#059669;--color-success-soft:#ecfdf5;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-pill:999px;--shadow-sm:0 1px 2px rgba(15,23,42,0.06);--shadow-md:0 4px 16px rgba(15,23,42,0.08);--shadow-lg:0 20px 48px rgba(15,23,42,0.28)}@media (prefers-color-scheme:dark){:root{--color-bg:#0b0f1a;--color-surface:#141a29;--color-surface-2:#1b2233;--color-surface-3:#232b3d;--color-border:#2a3346;--color-border-strong:#3a445c;--color-text:#e8ecf5;--color-text-soft:#b3bccd;--color-text-muted:#7d8798;--color-accent-soft:#33210f;--color-shell:#0a0e18;--color-shell-text:#e6e9f2;--color-link:#7aa5ff;--color-danger-soft:#2a1414;--color-success-soft:#10241d;--shadow-sm:0 1px 2px rgba(0,0,0,0.4);--shadow-md:0 4px 16px rgba(0,0,0,0.45);--shadow-lg:0 20px 48px rgba(0,0,0,0.6)}}.container{max-width:1200px;margin:0 auto;padding:1.75rem 1.5rem 4rem}.page-title{font-size:1.5rem;letter-spacing:-.01em;margin:0 0 1.5rem;color:var(--color-text)}.navbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:var(--color-shell);color:var(--color-shell-text);gap:1rem;position:-webkit-sticky;position:sticky;top:0;z-index:20}.navbar a{color:#b9c1d4}.navbar a:hover{color:#fff;text-decoration:none}.navbar-brand a{font-size:1.05rem;font-weight:700;letter-spacing:-.01em;color:var(--color-accent)}.navbar-brand a:hover{color:#ff7a30}.navbar-links{display:flex;gap:1.25rem;font-size:.9rem}.navbar-actions{display:flex;align-items:center;gap:.6rem}.navbar-user{color:#8b94a8;font-size:.8rem;max-width:18ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navbar .btn-outline{border-color:#39415a;color:#d6dbe8;background:transparent}.navbar .btn-outline:hover:not(:disabled){background:#232b40}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;cursor:pointer;border:1px solid transparent;background:transparent;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-outline{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text-soft)}.btn-outline:hover:not(:disabled){background:var(--color-surface-3);color:var(--color-text)}.btn-danger{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn-danger:hover:not(:disabled){filter:brightness(.92)}.btn-sm{padding:.3rem .7rem;font-size:.8rem}.btn-lg{padding:.75rem 2rem;font-size:1.05rem}.btn-group{display:inline-flex;gap:0;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--color-border-strong)}.btn-group .btn{border-radius:0;border-color:transparent}.btn-group .btn+.btn{border-left:1px solid var(--color-border)}.date-range-picker{align-items:flex-end;margin-bottom:1.5rem;padding:1rem 1.25rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.date-inputs,.date-range-picker{display:flex;gap:1rem;flex-wrap:wrap}.date-field{display:flex;flex-direction:column;gap:.3rem}.date-field label{font-size:.78rem;font-weight:500;color:var(--color-text-soft)}.date-field input{padding:.45rem .6rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);font-size:.9rem}.date-presets{display:flex;gap:.4rem;flex-wrap:wrap;width:100%;margin-top:.25rem}.chip{padding:.3rem .75rem;border-radius:var(--radius-pill);border:1px solid var(--color-border-strong);background:var(--color-surface-2);color:var(--color-text-soft);font-size:.8rem;cursor:pointer;transition:background-color .15s ease,color .15s ease}.chip:hover{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:.85rem;gap:.85rem;margin-bottom:1.5rem}.kpi-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:.9rem 1.1rem}.kpi-label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.kpi-value{display:block;margin-top:.3rem;font-size:1.6rem;font-weight:700;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi-card--accent .kpi-value{color:var(--color-accent)}.report-meta{font-size:.78rem;color:var(--color-text-muted);margin:-.75rem 0 1.25rem}.group-by-selector{display:flex;align-items:center;gap:.85rem;margin-bottom:1rem;flex-wrap:wrap}.group-by-label{font-size:.85rem;color:var(--color-text-soft)}.report-table-container{overflow-x:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.table{width:100%;border-collapse:separate;border-spacing:0}.table td,.table th{padding:.65rem .85rem;text-align:left;border-bottom:1px solid var(--color-border);font-size:.85rem;vertical-align:top}.table thead th{color:var(--color-text-soft);font-weight:600;font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;position:-webkit-sticky;position:sticky;top:0;z-index:1;white-space:nowrap}.table tbody tr:nth-child(2n)>td,.table thead th{background:var(--color-surface-2)}.table tbody tr:hover>td{background:var(--color-accent-soft)}.table td.numeric,.table th.numeric{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.table tfoot td{font-weight:600;border-top:2px solid var(--color-border-strong);background:var(--color-surface-3)}.text-muted{color:var(--color-text-muted);font-size:.8rem}.items-detail{font-size:.82rem;margin-top:.35rem}.items-detail summary{cursor:pointer;color:var(--color-link)}.items-detail ul{margin:.35rem 0 0;padding:0 0 0 .75rem;list-style:none;border-left:2px solid var(--color-border)}.items-detail li{padding:.2rem 0}.alert{padding:.8rem 1rem;border-radius:var(--radius-sm);margin-bottom:1rem;font-size:.88rem}.alert-error{background:var(--color-danger-soft);color:var(--color-danger);border:1px solid var(--color-danger)}.empty-state{text-align:center;padding:3rem 1.5rem;background:var(--color-surface);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-soft)}.empty-state h3{margin:0 0 .4rem;font-size:1.05rem;color:var(--color-text)}.empty-state p{margin:0;font-size:.88rem}.skeleton-table{display:grid;grid-gap:.5rem;gap:.5rem}.skeleton-row{height:2.5rem;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--color-surface-2) 25%,var(--color-surface-3) 37%,var(--color-surface-2) 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.card{background:var(--color-surface);border:1px solid var(--color-border);padding:1.1rem 1.25rem;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.card,.rules-editor .mb-2{margin-bottom:.85rem}.rule-form{margin-bottom:1.5rem}.rule-form h3{margin-top:0;font-size:1.05rem}.form-field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.85rem}.form-field label{font-size:.82rem;color:var(--color-text-soft)}.form-field input[type=number],.form-field input[type=text],.form-field select{padding:.45rem .6rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);font-size:.9rem}.form-row{display:flex;gap:1rem;flex-wrap:wrap}.form-actions{display:flex;gap:.5rem;margin-top:1rem}fieldset{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.85rem;margin-bottom:.85rem}legend{font-size:.82rem;color:var(--color-text-soft);padding:0 .4rem}.rule-item{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.rule-info{flex:1 1}.rule-actions{display:flex;gap:.5rem;flex-shrink:0}.rule-details{font-size:.82rem;margin:.3rem 0 0}.badge,.rule-details{color:var(--color-text-soft)}.badge{display:inline-block;padding:.15rem .55rem;background:var(--color-surface-3);border-radius:var(--radius-pill);font-size:.72rem;margin-left:.5rem}.badge-inactive{background:var(--color-danger-soft);color:var(--color-danger)}.badge-success{background:var(--color-success-soft);color:var(--color-success)}.badge-sandbox{background:var(--color-accent);color:#fff;font-weight:700;letter-spacing:.08em;margin-left:0}.callback-page{display:flex;justify-content:center;align-items:center;min-height:60vh}.callback-status{text-align:center;padding:2rem}.spinner{width:40px;height:40px;border:4px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 1rem}@keyframes spin{to{transform:rotate(1turn)}}.loading{min-height:50vh;font-size:1rem;color:var(--color-text-soft)}.loading,.login-screen{display:flex;justify-content:center;align-items:center}.login-screen{min-height:100vh;padding:1.5rem;background:radial-gradient(1200px 600px at 15% -10%,rgba(255,90,0,.28),transparent 60%),linear-gradient(150deg,#12172b,#0a0e18)}.login-card{width:100%;max-width:420px;text-align:left;background:var(--color-surface);padding:2.25rem 2rem 1.75rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.login-card h1{color:var(--color-text);font-size:1.4rem;letter-spacing:-.01em;margin:.5rem 0 .25rem}.login-brand{text-align:center;margin-bottom:1.5rem}.login-logo{display:inline-block;color:var(--color-accent);font-size:1.4rem;letter-spacing:-.15em;line-height:1}.login-subtitle{color:var(--color-text-soft);font-size:.88rem;margin:0}.login-note{text-align:center;color:var(--color-text-muted);font-size:.78rem;margin:1.5rem 0 0;line-height:1.5}.dialog,.login-card [data-amplify-authenticator],.login-card [data-amplify-authenticator] [data-amplify-container]{width:100%}.dialog{padding:0;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-lg);max-width:min(30rem,calc(100vw - 2rem))}.dialog::-webkit-backdrop{background:rgba(8,11,20,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialog::backdrop{background:rgba(8,11,20,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialog[open]{animation:dialog-in .14s ease-out}@keyframes dialog-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}.dialog-body{padding:1.5rem 1.5rem 1.25rem}.dialog-title{margin:0 0 .5rem;font-size:1.1rem;letter-spacing:-.01em}.dialog-message{margin:0;color:var(--color-text-soft);font-size:.9rem;line-height:1.55}.dialog-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.5rem}