:root{--bg:#101318;--surface:#171C23;--raised:#1F2630;--line:#2A323D;--ink:#E8EDF2;--muted:#97A3B0;--faint:#5E6A76;--accent:#E0995A;--accent-ink:#F0B27E;--ok:#5FC08D;--warn:#E3C74F;--crit:#E06C5B;--off:#8A93A0;--app-1:#5FB8A8;--app-2:#9D8CE0;--app-3:#D9B45A;--app-4:#6FA8DC;--app-5:#D97C99}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,sans-serif;display:flex;min-height:100vh}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-variant-numeric:tabular-nums}aside{width:208px;flex-shrink:0;border-right:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;gap:2px}.brand{display:flex;align-items:center;gap:9px;padding:4px 10px 16px}.brand .mark{width:26px;height:26px;border-radius:8px;background:var(--accent);display:grid;place-items:center;color:#14110c;font-weight:900;font-size:14px;font-family:ui-monospace,monospace}.brand .n{font-weight:800;font-size:15px;letter-spacing:-.3px}.brand .v{font-family:ui-monospace,monospace;font-size:9px;color:var(--faint)}.nav-label{font-family:ui-monospace,monospace;font-size:9px;text-transform:uppercase;letter-spacing:1.4px;color:var(--faint);padding:12px 10px 6px}.nav a{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:8px;color:var(--muted);text-decoration:none;font-size:13px;font-weight:600}.nav a.active{background:var(--raised);color:var(--ink);box-shadow:inset 2px 0 0 var(--accent)}.nav a:hover:not(.active){color:var(--ink)}.nav .ic{width:16px;text-align:center;font-size:13px}.nav .appdot{width:8px;height:8px;border-radius:50%;margin:0 4px}.sidefoot{margin-top:auto;padding:10px;font-family:ui-monospace,monospace;font-size:10px;color:var(--faint);display:flex;align-items:center;gap:6px}.sidefoot .led{width:6px;height:6px;border-radius:50%;background:var(--ok)}main{flex:1;padding:24px 28px 40px;min-width:0}h1{font-size:24px;font-weight:800;letter-spacing:-.5px}.topbar{display:flex;align-items:baseline;gap:14px;margin-bottom:18px}.sync{font-family:ui-monospace,monospace;font-size:11px;color:var(--faint)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px}.panel.flush{padding:0;overflow:hidden}.panel h2{font-size:13px;font-weight:700}.panel .sub{font-family:ui-monospace,monospace;font-size:10px;color:var(--faint);margin-top:2px}.btn{font-family:ui-monospace,monospace;font-size:11px;font-weight:700;color:var(--accent-ink);border:1px solid rgba(224,153,90,.4);border-radius:8px;padding:7px 13px;cursor:pointer;display:inline-block;background:none}.btn.solid{background:var(--accent);color:#14110c;border-color:var(--accent)}.btn.ghost{color:var(--muted);border-color:var(--line)}.btn.danger{color:var(--crit);border-color:#e06c5b66}.btn.danger.solid{background:var(--crit);color:#14110c;border-color:var(--crit)}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-family:ui-monospace,monospace;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:1.1px;color:var(--faint);padding:9px 14px;border-bottom:1px solid var(--line);background:var(--raised)}td{padding:10px 14px;border-bottom:1px solid var(--line)}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:#1a2029}td.num,th.num{text-align:right;font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums;white-space:nowrap}.badge{display:inline-block;font-family:ui-monospace,monospace;font-size:9px;font-weight:700;letter-spacing:.6px;padding:2px 7px;border-radius:99px;border:1px solid}.badge.plus{color:var(--accent-ink);border-color:#e0995a66;background:#e0995a14}.badge.oauth{color:var(--muted);border-color:var(--line);background:var(--raised)}.badge.ok{color:var(--ok);border-color:#5fc08d66;background:#5fc08d14}.badge.fail{color:var(--crit);border-color:#e06c5b66;background:#e06c5b14}.appchip{display:inline-flex;align-items:center;gap:6px;font-weight:600}.appchip .d{width:8px;height:8px;border-radius:50%}.crumbs{font-family:ui-monospace,monospace;font-size:11px;color:var(--faint);margin-bottom:10px}.crumbs b{color:var(--muted)}.apphead{display:flex;align-items:center;gap:12px;margin-bottom:4px}.apphead .dot{width:11px;height:11px;border-radius:50%;background:var(--app-1)}.apphead .status{display:flex;align-items:center;gap:5px;font-family:ui-monospace,monospace;font-size:10px;font-weight:700;color:var(--ok)}.apphead .led{width:7px;height:7px;border-radius:50%;background:var(--ok)}.appmeta{font-family:ui-monospace,monospace;font-size:11px;color:var(--faint);margin-bottom:18px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:18px}.tab{padding:9px 16px;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.tab.active{color:var(--ink);border-bottom-color:var(--accent)}label{display:block;font-family:ui-monospace,monospace;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:1.3px;color:var(--faint);margin:0 0 6px}.field{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:10px 12px;color:var(--ink);font-size:13px}.field.mono{font-family:ui-monospace,monospace}.est{font-style:italic;color:var(--faint)}.axis{font-family:ui-monospace,monospace;font-size:9px;fill:#5e6a76}.toggle{width:34px;height:19px;border-radius:99px;background:var(--raised);border:1px solid var(--line);position:relative;flex-shrink:0}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:var(--faint)}.toggle.on{background:#5fc08d40;border-color:#5fc08d80}.toggle.on:after{left:auto;right:2px;background:var(--ok)}.auth-screen{min-height:100vh;width:100%;display:grid;place-items:center;padding:24px}.auth-screen .box{width:100%;max-width:360px}.auth-screen .box.wide{max-width:400px}.auth-screen .brand{display:flex;align-items:center;gap:10px;justify-content:center;margin-bottom:26px;padding:0}.auth-screen .brand .mark{width:34px;height:34px;border-radius:10px;background:var(--accent);display:grid;place-items:center;color:#14110c;font-weight:900;font-size:18px;font-family:ui-monospace,monospace}.auth-screen .brand .n{font-weight:800;font-size:20px;letter-spacing:-.4px}.auth-screen .brand .v{font-family:ui-monospace,monospace;font-size:9px;color:var(--faint)}.auth-screen .card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px}.auth-screen .step{font-family:ui-monospace,monospace;font-size:9px;color:var(--faint);letter-spacing:1.3px;text-transform:uppercase;margin-bottom:16px;display:flex;align-items:center;gap:8px}.auth-screen .step .b{color:var(--accent-ink)}.auth-screen h2{font-size:16px;font-weight:800;letter-spacing:-.3px;margin-bottom:6px}.auth-screen .d{font-size:12px;color:var(--muted);line-height:1.55;margin-bottom:16px}.auth-screen label{display:block;font-family:ui-monospace,monospace;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:1.3px;color:var(--faint);margin:0 0 6px}.auth-screen .field{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:11px 13px;color:var(--ink);font-size:14px;margin-bottom:14px}.auth-screen .field:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #e0995a26}.auth-screen .qrwrap{display:flex;gap:16px;align-items:center;margin-bottom:16px}.auth-screen .qr{width:132px;height:132px;background:#fff;border-radius:10px;padding:10px;flex-shrink:0}.auth-screen .qr img{width:100%;height:100%;display:block}.auth-screen .manual{flex:1}.auth-screen .code{font-family:ui-monospace,monospace;font-size:12px;color:var(--accent-ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:9px 11px;letter-spacing:1px;word-break:break-all}.auth-screen .totp{display:flex;gap:7px;margin-bottom:16px}.auth-screen .totp input{flex:1;width:100%;min-width:0;aspect-ratio:.86;text-align:center;background:var(--bg);border:1px solid var(--line);border-radius:9px;color:var(--ink);font-family:ui-monospace,monospace;font-size:20px;font-weight:700}.auth-screen .totp input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #e0995a26}.auth-screen .totp input.filled{border-color:var(--accent)}.auth-screen .btn{width:100%;background:var(--accent);color:#14110c;border:0;border-radius:9px;font-size:14px;font-weight:800;padding:12px;cursor:pointer;letter-spacing:.2px;font-family:inherit}.auth-screen .btn:disabled{opacity:.55;cursor:default}.auth-screen .hint{font-size:11px;color:var(--faint);text-align:center;margin-top:14px}.auth-screen .auth-error{font-size:12px;color:var(--crit);text-align:center;margin-top:12px}#root{display:contents}.state{padding:44px 20px;text-align:center}.state .icon{font-size:22px}.state .t{font-size:14px;font-weight:700;margin-top:8px}.state .d{font-size:12px;color:var(--muted);margin-top:4px}.state .cta{display:inline-block;margin-top:12px;font-family:ui-monospace,monospace;font-size:11px;font-weight:700;color:var(--accent-ink);border:1px solid rgba(224,153,90,.4);border-radius:8px;padding:7px 14px;cursor:pointer}.skeleton{display:grid;gap:8px;padding:14px}.sk{height:30px;border-radius:6px;background:linear-gradient(90deg,var(--raised) 25%,#242c37 50%,var(--raised) 75%);background-size:200% 100%;animation:sk-shimmer 1.4s ease-in-out infinite}@keyframes sk-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.overview .topbar{display:flex;align-items:baseline;gap:14px;margin-bottom:20px}.overview .refresh{margin-left:auto;font-family:ui-monospace,monospace;font-size:11px;font-weight:700;color:var(--accent-ink);border:1px solid rgba(224,153,90,.4);border-radius:8px;padding:7px 13px;cursor:pointer}.overview .strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.overview .stat{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:13px 16px}.overview .stat .l{font-family:ui-monospace,monospace;font-size:9px;text-transform:uppercase;letter-spacing:1.2px;color:var(--faint)}.overview .stat .v{font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:24px;font-weight:700;margin-top:4px}.overview .stat .d{font-family:ui-monospace,monospace;font-size:10px;margin-top:2px;color:var(--faint)}.overview .stat .d.up{color:var(--ok)}.overview .cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}.overview .card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:15px 17px 13px;border-top:2px solid var(--app-color, var(--line));cursor:pointer}.overview .card:hover{background:#1a2029}.overview .card.off{border-top-color:var(--off)}.overview .card.skeleton-card{height:150px;border-top-color:var(--line);cursor:default;background:linear-gradient(90deg,var(--surface) 25%,#1c232c 50%,var(--surface) 75%);background-size:200% 100%;animation:sk-shimmer 1.4s ease-in-out infinite}.overview .card .head{display:flex;align-items:center;gap:9px}.overview .card .name{font-size:15px;font-weight:700;letter-spacing:-.3px}.overview .card .slug{font-family:ui-monospace,monospace;font-size:10px;color:var(--faint)}.overview .card .status{margin-left:auto;display:flex;align-items:center;gap:5px;font-family:ui-monospace,monospace;font-size:9px;font-weight:700}.overview .card .led{width:7px;height:7px;border-radius:50%}.overview .kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:13px}.overview .kpi .l{font-family:ui-monospace,monospace;font-size:8.5px;text-transform:uppercase;letter-spacing:1px;color:var(--faint)}.overview .kpi .v{font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:16px;font-weight:700;margin-top:3px;white-space:nowrap}.overview .kpi .d{font-family:ui-monospace,monospace;font-size:9.5px;margin-top:1px;color:var(--faint)}.overview .spark{margin-top:11px;padding-top:9px;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px}.overview .spark .legend{font-family:ui-monospace,monospace;font-size:8.5px;color:var(--faint)}.overview .offband{margin-top:14px;background:var(--raised);border:1px dashed var(--line);border-radius:8px;padding:10px 12px;font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center}.overview .offband .mono{color:var(--off);font-size:10px}.app-detail.grid{display:grid;grid-template-columns:2fr 1fr;gap:14px;align-items:start}.app-detail .chart-legend{display:flex;gap:16px;margin:12px 0 8px;font-family:ui-monospace,monospace;font-size:10px;color:var(--muted)}.app-detail .chart-legend .k{display:flex;align-items:center;gap:6px}.app-detail .chart-legend .sw{width:14px;height:2px;border-radius:1px}.app-detail .kpi-row{display:flex;align-items:baseline;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}.app-detail .kpi-row:last-child{border-bottom:none}.app-detail .kpi-row .l{font-size:12px;color:var(--muted)}.app-detail .kpi-row .v{font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.app-detail .kpi-row .d{font-family:ui-monospace,monospace;font-size:10px;color:var(--ok);margin-left:8px}.app-detail .actions{margin-top:14px;display:grid;gap:8px}.app-detail .act{display:flex;align-items:center;justify-content:space-between;background:var(--raised);border:1px solid var(--line);border-radius:9px;padding:10px 12px;font-size:12px;font-weight:600}.app-detail .act .mono{font-size:9px;color:var(--faint)}.app-detail .act.danger{border-color:#e06c5b59}.app-detail .act.danger .name{color:var(--crit)}.app-detail .act.runnable{cursor:pointer}.app-detail .act.runnable:hover{background:#1a2029;border-color:#e0995a66}.app-detail .act.runnable .mono{color:var(--accent-ink)}.app-detail .act.danger.runnable:hover{border-color:#e06c5b8c}.app-users .toolbar{display:flex;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}.app-users .search{flex:1;max-width:320px;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 12px;color:var(--muted);font-size:13px;display:flex;gap:8px;align-items:center}.app-users .search input{flex:1;background:transparent;border:none;outline:none;color:var(--ink);font-size:13px;font-family:inherit;min-width:0}.app-users .search input::placeholder{color:var(--faint)}.app-users .count{font-family:ui-monospace,monospace;font-size:11px;color:var(--faint);margin-left:auto}.app-users .email{font-weight:600}.app-users .subtxt{font-family:ui-monospace,monospace;font-size:10px;color:var(--faint)}.app-users .actions-btn{font-family:ui-monospace,monospace;font-size:11px;color:var(--accent-ink);font-weight:700;cursor:pointer;white-space:nowrap}.app-users .pager{display:flex;align-items:center;gap:8px;padding:11px 14px;border-top:1px solid var(--line);font-family:ui-monospace,monospace;font-size:11px;color:var(--faint)}.app-users .pager .pg{padding:4px 9px;border:1px solid var(--line);border-radius:6px;cursor:pointer}.app-users .pager .pg.on{color:var(--ink);background:var(--raised)}.app-users .livehint{font-family:ui-monospace,monospace;font-size:10px;color:var(--faint);margin-left:auto}.user-fiche .scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#06080b8c}.user-fiche .drawer{position:fixed;top:0;right:0;bottom:0;width:400px;max-width:100vw;background:var(--surface);border-left:1px solid var(--line);padding:22px;overflow-y:auto;box-shadow:-18px 0 40px #00000059}.user-fiche .drawer .close{position:absolute;top:16px;right:16px;color:var(--faint);font-size:16px;cursor:pointer}.user-fiche .drawer h2{font-size:17px;font-weight:800;letter-spacing:-.3px}.user-fiche .since{font-family:ui-monospace,monospace;font-size:10px;color:var(--faint);margin:3px 0 12px}.user-fiche .badges{display:flex;gap:6px;margin-bottom:16px}.user-fiche .sect{font-family:ui-monospace,monospace;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:1.4px;color:var(--faint);margin:18px 0 8px}.user-fiche .kv{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--line)}.user-fiche .kv:last-child{border-bottom:none}.user-fiche .kv .l{font-size:12px;color:var(--muted)}.user-fiche .kv .v{font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.user-fiche .actlist{display:grid;gap:8px}.user-fiche .actbtn{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;background:var(--raised);border:1px solid var(--line);border-radius:9px;padding:11px 13px;font-size:12px;font-weight:700;color:var(--ink);cursor:pointer}.user-fiche .actbtn:hover{border-color:#e0995a66;background:#222b36}.user-fiche .actbtn .hint{font-family:ui-monospace,monospace;font-size:9px;color:var(--faint);font-weight:600}.user-fiche .actbtn.danger{border-color:#e06c5b59;color:var(--crit)}.user-fiche .actbtn.danger:hover{border-color:#e06c5b99}.app-costs.grid{display:grid;grid-template-columns:3fr 2fr;gap:14px;align-items:start}.app-costs .legend{display:flex;gap:16px;margin:12px 0 8px;font-family:ui-monospace,monospace;font-size:10px;color:var(--muted);flex-wrap:wrap}.app-costs .legend .k{display:flex;align-items:center;gap:6px}.app-costs .legend .sw{width:9px;height:9px;border-radius:2px}.app-costs .model{font-family:ui-monospace,monospace;font-size:11px}.app-costs .email{font-weight:600;font-size:12px}.app-costs .missing{color:var(--warn);font-family:ui-monospace,monospace;font-size:10px;font-weight:700}.costs .topbar{display:flex;align-items:baseline;gap:14px;margin-bottom:18px}.costs .note{font-size:12px;color:var(--muted);margin-bottom:18px}.costs .note em{color:var(--faint)}.costs .range{margin-left:auto;display:flex;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:3px}.costs .range span{font-family:ui-monospace,monospace;font-size:10px;font-weight:700;padding:5px 11px;border-radius:6px;color:var(--muted);cursor:pointer}.costs .range span.on{background:var(--raised);color:var(--ink)}.costs .grid{display:grid;grid-template-columns:2fr 1fr;gap:14px;align-items:start}.costs .legend{display:flex;gap:16px;margin:12px 0 8px;font-family:ui-monospace,monospace;font-size:10px;color:var(--muted);flex-wrap:wrap}.costs .legend .k{display:flex;align-items:center;gap:6px}.costs .legend .sw{width:9px;height:9px;border-radius:2px}.costs .model{font-family:ui-monospace,monospace;font-size:11px}.costs .missing{color:var(--warn);font-family:ui-monospace,monospace;font-size:10px;font-weight:700;cursor:pointer}.costs .addrule{margin-top:10px;font-family:ui-monospace,monospace;font-size:10px;font-weight:700;color:var(--accent-ink);cursor:pointer}.costs .total-line td{background:var(--raised);font-weight:700}.costs .del-rule{color:var(--faint);cursor:pointer;font-family:ui-monospace,monospace}.costs .del-rule:hover{color:var(--crit)}.costs .rule-form{padding:12px 2px 4px;display:grid;gap:8px}.costs .rule-form .rf-row.two{display:grid;grid-template-columns:1fr 1fr;gap:8px}.costs .rule-form .rf-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.app-settings.cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start;max-width:980px}.app-settings .frow{margin-bottom:16px}.app-settings .frow:last-child{margin-bottom:0}.app-settings .inline{display:flex;gap:8px;align-items:center}.app-settings .inline .field{flex:1;min-width:0}.app-settings .secret{letter-spacing:2px;color:var(--faint)}.app-settings .hint{font-size:11px;color:var(--faint);margin-top:6px;line-height:1.5}.app-settings .caps{display:flex;gap:6px;flex-wrap:wrap}.app-settings .synclog{font-family:ui-monospace,monospace;font-size:11px}.app-settings .synclog .row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--line)}.app-settings .synclog .row:last-child{border-bottom:none}.app-settings .danger-zone{border-color:#e06c5b4d}.app-settings .danger-zone h2{color:var(--crit)}.app-settings .dz-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line)}.app-settings .dz-row:last-child{border-bottom:none;padding-bottom:0}.app-settings .dz-row .t{font-size:13px;font-weight:700}.app-settings .dz-row .d{font-size:11px;color:var(--muted);margin-top:2px}.add-app-modal .scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#06080b99}.add-app-modal .modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:460px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:0 24px 60px #00000073;max-height:calc(100vh - 40px);overflow-y:auto}.add-app-modal .modal h2{font-size:16px;font-weight:800;letter-spacing:-.3px;margin-bottom:16px}.add-app-modal .steps{font-family:ui-monospace,monospace;font-size:9px;color:var(--faint);letter-spacing:1.2px;margin-bottom:14px}.add-app-modal .steps .on{color:var(--accent-ink)}.add-app-modal .frow{margin-bottom:14px}.add-app-modal .secretbox{background:var(--bg);border:1px solid rgba(224,153,90,.5);border-radius:9px;padding:12px;display:flex;align-items:center;gap:10px}.add-app-modal .secretbox code{font-family:ui-monospace,monospace;font-size:12px;color:var(--accent-ink);word-break:break-all;flex:1}.add-app-modal .warnbox{background:#e3c74f12;border:1px solid rgba(227,199,79,.3);border-radius:9px;padding:10px 12px;font-size:11px;color:var(--muted);margin:12px 0 16px;line-height:1.55}.add-app-modal .warnbox b{color:var(--warn)}.add-app-modal .warnbox .mono{font-size:10px}.add-app-modal .warnbox.ok-box{background:#5fc08d12;border-color:#5fc08d4d}.add-app-modal .warnbox.ok-box b{color:var(--ok)}.add-app-modal .caps{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.add-app-modal .foot{display:flex;justify-content:flex-end;align-items:center;gap:8px}.add-app-modal .modal-error{color:var(--crit);font-size:11px;margin-bottom:8px}.action-modal .scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#06080b99}.action-modal .modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:420px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:0 24px 60px #00000073;max-height:calc(100vh - 40px);overflow-y:auto}.action-modal .modal h2{font-size:16px;font-weight:800;letter-spacing:-.3px}.action-modal .target{font-family:ui-monospace,monospace;font-size:10px;color:var(--faint);margin:4px 0 16px}.action-modal .field-block{margin-bottom:16px}.action-modal .field-block.bool{display:flex;align-items:center;justify-content:space-between}.action-modal .field-block.bool label{margin:0}.action-modal .field-block.bool .toggle{cursor:pointer}.action-modal .danger-confirm label{color:var(--crit)}.action-modal .note{background:var(--raised);border:1px solid var(--line);border-radius:9px;padding:10px 12px;font-size:11px;color:var(--muted);margin-bottom:18px;line-height:1.5}.action-modal .note .mono{color:var(--faint);font-size:10px}.action-modal .note.danger-note{background:#e06c5b12;border-color:#e06c5b4d}.action-modal .note.danger-note b{color:var(--crit)}.action-modal .modal-error{color:var(--crit);font-size:11px;margin-bottom:8px}.action-modal .foot{display:flex;justify-content:flex-end;align-items:center;gap:8px}.action-modal .result{border:1px solid var(--line);background:var(--raised);border-radius:9px;padding:12px 14px;margin-bottom:14px}.action-modal .result p{font-size:12px;color:var(--ink);margin-top:8px;line-height:1.5}.action-modal .result .badge{display:inline-block;font-family:ui-monospace,monospace;font-size:10px;font-weight:700;letter-spacing:.6px;padding:2px 8px;border-radius:99px;border:1px solid}.action-modal .result.ok{border-color:#5fc08d66;background:#5fc08d14}.action-modal .result.ok .badge{color:var(--ok);border-color:#5fc08d66}.action-modal .result.refused,.action-modal .result.fail{border-color:#e06c5b66;background:#e06c5b14}.action-modal .result.refused .badge,.action-modal .result.fail .badge{color:var(--crit);border-color:#e06c5b66}.journal .topbar{display:flex;align-items:baseline;gap:14px;margin-bottom:18px;flex-wrap:wrap}.journal .filters{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}.journal .chip{font-family:ui-monospace,monospace;font-size:10px;font-weight:700;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:99px;padding:5px 12px;cursor:pointer}.journal .chip.on{color:var(--ink);background:var(--raised)}.journal .when{font-family:ui-monospace,monospace;font-size:11px;color:var(--muted);white-space:nowrap}.journal .actname{font-weight:700;font-size:12px}.journal .params{font-family:ui-monospace,monospace;font-size:10px;color:var(--faint)}.journal .who{font-size:12px}.journal .pager{display:flex;align-items:center;gap:8px;padding:11px 14px;border-top:1px solid var(--line);font-family:ui-monospace,monospace;font-size:11px;color:var(--faint)}.journal .pager .pg{padding:4px 9px;border:1px solid var(--line);border-radius:6px;cursor:pointer}.journal .pager .pgnum{color:var(--ink)}.journal .pager .livehint{margin-left:auto}.alerts .topbar{display:flex;align-items:baseline;gap:14px;margin-bottom:18px;flex-wrap:wrap}.alerts .grid{display:grid;grid-template-columns:2fr 1fr;gap:14px;align-items:start}.alerts .alert-row{display:flex;align-items:center;gap:14px;padding:14px;border-bottom:1px solid var(--line)}.alerts .alert-row:last-child{border-bottom:none}.alerts .alert-row .toggle{cursor:pointer}.alerts .alert-row .kind{font-family:ui-monospace,monospace;font-size:9px;font-weight:700;letter-spacing:.8px;width:118px;flex-shrink:0}.alerts .alert-row .body{min-width:0}.alerts .alert-row .t{font-size:13px;font-weight:700}.alerts .alert-row .d{font-size:11px;color:var(--muted);margin-top:2px}.alerts .alert-row .fired{margin-left:auto;text-align:right;font-family:ui-monospace,monospace;font-size:10px;color:var(--faint);flex-shrink:0;white-space:nowrap}.alerts .alert-row .del{color:var(--faint);cursor:pointer;font-family:ui-monospace,monospace;font-size:12px;flex-shrink:0}.alerts .alert-row .del:hover{color:var(--crit)}.alerts .frow{margin-bottom:14px}.alerts select.field{-webkit-appearance:none;-moz-appearance:none;appearance:none}.alerts .hint{font-size:11px;color:var(--faint);margin-top:6px;line-height:1.5}.alerts .mailcfg{font-family:ui-monospace,monospace;font-size:10px;color:var(--faint);display:flex;justify-content:space-between;padding-top:12px;margin-top:12px;border-top:1px solid var(--line)}.incidents .topbar{display:flex;align-items:baseline;gap:14px;margin-bottom:18px;flex-wrap:wrap}.incidents .filters{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}.incidents .chip{font-family:ui-monospace,monospace;font-size:10px;font-weight:700;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:99px;padding:5px 12px;cursor:pointer}.incidents .chip.on{color:var(--ink);background:var(--raised)}.incidents .chip.lvl-error.on{color:var(--crit);border-color:#e06c5b66}.incidents .chip.lvl-warning.on{color:var(--warn);border-color:#e3c74f66}.incidents .chip.lvl-info.on{color:var(--off)}.incidents .badge.lvl-error{color:var(--crit);border-color:#e06c5b66;background:#e06c5b14}.incidents .badge.lvl-warning{color:var(--warn);border-color:#e3c74f66;background:#e3c74f14}.incidents .badge.lvl-info{color:var(--off);border-color:var(--line);background:var(--raised)}.incidents .inc-title{font-weight:700;font-size:12px;display:flex;align-items:center;gap:6px}.incidents .inc-title .caret{color:var(--faint);font-size:10px;width:10px}.incidents .inc-msg{font-size:11px;color:var(--muted);margin-top:2px;max-width:420px}.incidents .inc-fp{font-family:ui-monospace,monospace;font-size:9.5px;color:var(--faint);margin-top:3px}.incidents .inc-count{font-family:ui-monospace,monospace;font-weight:700;color:var(--accent-ink)}.incidents .when{font-family:ui-monospace,monospace;font-size:11px;color:var(--muted);white-space:nowrap}.incidents .inc-ctx-row td{background:var(--bg);padding:0}.incidents .inc-ctx{font-family:ui-monospace,monospace;font-size:11px;color:var(--muted);padding:12px 16px;margin:0;white-space:pre-wrap;word-break:break-word;overflow-x:auto}@media(max-width:860px){body{flex-direction:column}aside{width:100%;border-right:none;border-bottom:1px solid var(--line)}aside .nav{flex-direction:row;flex-wrap:wrap}.sidefoot{padding:8px 10px}main{padding:18px 14px 32px}.overview .strip{grid-template-columns:1fr 1fr}.overview .cards,.app-detail.grid,.app-costs.grid,.costs .grid,.alerts .grid,.app-settings.cols{grid-template-columns:1fr}.panel{overflow-x:auto}.panel table{min-width:560px}.app-users .panel.flush,.panel.flush{overflow-x:auto}.user-fiche .drawer{width:100%}}
