﻿:root{
    --blue:#0096DD; --blue-d:#007ab4; --green:#00BE57; --red:#FA2F2B;
    --amber:#F5A623; --purple:#8B5CF6;
    --bg:#0f1620; --bg2:#151e2b; --panel:#1a2534; --panel2:#202d40;
    --border:#2a384c; --border2:#354458;
    --txt:#e6edf5; --txt2:#9fb0c3; --txt3:#6b7d92;
    --sidebar:#0c121b; --header:#131c28;
    --radius:10px; --shadow:0 2px 14px rgba(0,0,0,.35);
    --mono:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;
    --sans:'Segoe UI',system-ui,-apple-system,Roboto,sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html,body{height:100%}
  body{font-family:var(--sans);background:var(--bg);color:var(--txt);font-size:14px;line-height:1.45}
  ::-webkit-scrollbar{width:10px;height:10px}
  ::-webkit-scrollbar-track{background:var(--bg2)}
  ::-webkit-scrollbar-thumb{background:var(--border2);border-radius:6px}
  a{color:inherit;text-decoration:none}

  /* ---------- LAYOUT ---------- */
  .app{display:grid;grid-template-columns:248px 1fr;grid-template-rows:56px 1fr;height:100vh;
       grid-template-areas:"sidebar header" "sidebar main"}
  .sidebar{grid-area:sidebar;background:var(--sidebar);border-right:1px solid var(--border);
           display:flex;flex-direction:column;overflow-y:auto}
  .header{grid-area:header;background:var(--header);border-bottom:1px solid var(--border);
          display:flex;align-items:center;gap:16px;padding:0 20px}
  .main{grid-area:main;overflow-y:auto;padding:24px 28px}

  /* ---------- SIDEBAR ---------- */
  .brand{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--border)}
  .brand .logo{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,var(--blue),#00c2ff);
               display:grid;place-items:center;font-weight:800;color:#fff;font-size:15px}
  .brand b{font-size:15px;letter-spacing:.3px}
  .brand span{font-size:11px;color:var(--txt3);display:block}
  .nav{padding:10px 8px;flex:1}
  .nav .group{font-size:10.5px;text-transform:uppercase;letter-spacing:1px;color:var(--txt3);
              padding:14px 12px 6px;font-weight:600}
  .nav a{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:8px;color:var(--txt2);
         font-size:13.5px;cursor:pointer;position:relative}
  .nav a:hover{background:var(--panel);color:var(--txt)}
  .nav a.active{background:rgba(0,150,221,.14);color:#fff;font-weight:500}
  .nav a.active::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;
                        background:var(--blue);border-radius:0 3px 3px 0}
  .nav a .ico{width:18px;text-align:center;font-size:15px;opacity:.9}
  .nav a .badge{margin-left:auto;background:var(--red);color:#fff;font-size:10px;font-weight:700;
                padding:1px 7px;border-radius:10px}
  .agent-status{margin:8px;padding:12px;background:var(--panel);border-radius:10px;border:1px solid var(--border)}
  .agent-status .row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--txt2)}
  .agent-status .dot{width:8px;height:8px;border-radius:50%;background:var(--green);
                     box-shadow:0 0 0 3px rgba(0,190,87,.2)}

  /* ---------- HEADER ---------- */
  .env-badge{font-weight:700;font-size:11.5px;padding:5px 12px;border-radius:6px;letter-spacing:.5px;
             display:flex;align-items:center;gap:7px}
  .env-prod{background:rgba(250,47,43,.16);color:#ff6b68;border:1px solid rgba(250,47,43,.4)}
  .env-staging{background:rgba(245,166,35,.16);color:var(--amber);border:1px solid rgba(245,166,35,.4)}
  .env-badge .pulse{width:7px;height:7px;border-radius:50%;background:currentColor;animation:pulse 2s infinite}
  @keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
  .header .search{flex:1;max-width:420px;position:relative}
  .header .search input{width:100%;background:var(--bg2);border:1px solid var(--border);border-radius:8px;
                        padding:8px 12px 8px 34px;color:var(--txt);font-size:13px}
  .header .search input:focus{outline:none;border-color:var(--blue)}
  .header .search::before{content:"🔍";position:absolute;left:10px;top:7px;font-size:13px;opacity:.6}
  .header .spacer{flex:1}
  .header .hicon{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;cursor:pointer;
                 color:var(--txt2);position:relative;font-size:16px}
  .header .hicon:hover{background:var(--panel);color:var(--txt)}
  .header .hicon .n{position:absolute;top:4px;right:4px;width:8px;height:8px;background:var(--red);
                    border-radius:50%;border:2px solid var(--header)}
  .user{display:flex;align-items:center;gap:10px;padding:4px 10px 4px 4px;border-radius:22px;cursor:pointer}
  .user:hover{background:var(--panel)}
  .user .av{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--purple),var(--blue));
            display:grid;place-items:center;font-weight:700;font-size:13px;color:#fff}
  .user .info b{font-size:13px;display:block;line-height:1.2}
  .user .info span{font-size:11px;color:var(--txt3)}

  /* ---------- COMMON ---------- */
  .page{display:none;animation:fade .25s}
  .page.active{display:block}
  @keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
  .page-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px;flex-wrap:wrap;gap:12px}
  .page-head h1{font-size:22px;font-weight:600;letter-spacing:-.2px}
  .page-head .sub{color:var(--txt3);font-size:13px;margin-top:3px}
  .page-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px;flex-wrap:wrap;gap:12px}
  .page-heading h1{font-size:22px;font-weight:600;letter-spacing:-.2px}
  .page-heading p{color:var(--txt3);font-size:13px;margin-top:3px}
  .crumbs{font-size:12px;color:var(--txt3);margin-bottom:6px}
  .crumbs b{color:var(--txt2);font-weight:500}
  .actions-row{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
  .top-gap{margin-top:16px}
  .divider{height:1px;background:var(--border);margin:16px 0}
  .stretch{width:100%;justify-content:center}
  .muted{color:var(--txt3);font-size:12px}
  .truncate{max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

  .btn{border:1px solid var(--border2);background:var(--panel);color:var(--txt);padding:8px 15px;border-radius:8px;
       font-size:13px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:7px;font-family:inherit}
  .btn:hover{background:var(--panel2);border-color:#425268}
  .btn-primary{background:var(--blue);border-color:var(--blue);color:#fff}
  .btn-primary:hover{background:var(--blue-d);border-color:var(--blue-d)}
  .btn-danger{background:var(--red);border-color:var(--red);color:#fff}
  .btn-danger:hover{filter:brightness(.9)}
  .btn-ghost{background:transparent;border-color:var(--border)}
  .btn-sm{padding:5px 10px;font-size:12px}
  .btn:disabled{opacity:.4;cursor:not-allowed}
  .btn-loading{opacity:.75;cursor:wait}
  .spin{width:13px;height:13px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;display:inline-block;animation:spin .8s linear infinite}
  @keyframes spin{to{transform:rotate(360deg)}}
  .btn-outline-primary{background:var(--panel);border-color:rgba(0,150,221,.55);color:#43b6ee}
  .btn-outline-secondary{background:var(--panel);border-color:var(--border2);color:var(--txt2)}
  .btn-outline-danger{background:var(--panel);border-color:rgba(250,47,43,.55);color:#ff6b68}
  .btn-outline-primary:hover,.btn-outline-secondary:hover,.btn-outline-danger:hover{background:var(--panel2)}

  .grid{display:grid;gap:16px}
  .g4{grid-template-columns:repeat(4,1fr)}
  .g3{grid-template-columns:repeat(3,1fr)}
  .g2{grid-template-columns:repeat(2,1fr)}
  @media(max-width:1100px){.g4{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(2,1fr)}}

  .card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px}
  .card-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
  .card-h h3{font-size:14px;font-weight:600}
  .card-h .link{font-size:12px;color:var(--blue);cursor:pointer}

  /* KPI cards */
  .kpi{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;position:relative;overflow:hidden}
  .kpi .top{display:flex;align-items:center;justify-content:space-between}
  .kpi .label{font-size:12px;color:var(--txt2);font-weight:500}
  .kpi .ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:17px}
  .kpi .val{font-size:28px;font-weight:700;margin-top:8px;letter-spacing:-.5px}
  .kpi .foot{font-size:12px;color:var(--txt3);margin-top:4px;display:flex;align-items:center;gap:5px}
  .kpi .up{color:var(--green)} .kpi .down{color:var(--red)}
  .ic-blue{background:rgba(0,150,221,.15);color:#43b6ee}
  .ic-green{background:rgba(0,190,87,.15);color:#2fd67f}
  .ic-red{background:rgba(250,47,43,.15);color:#ff6b68}
  .ic-amber{background:rgba(245,166,35,.15);color:var(--amber)}
  .ic-purple{background:rgba(139,92,246,.15);color:#a98bff}

  /* Badges */
  .badge2{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:20px;font-size:11.5px;font-weight:600}
  .badge2 .d{width:7px;height:7px;border-radius:50%;background:currentColor}
  .b-ok{background:rgba(0,190,87,.14);color:#2fd67f}
  .b-err{background:rgba(250,47,43,.14);color:#ff6b68}
  .b-warn{background:rgba(245,166,35,.14);color:var(--amber)}
  .b-run{background:rgba(0,150,221,.14);color:#43b6ee}
  .b-idle{background:rgba(107,125,146,.18);color:var(--txt2)}
  .b-purple{background:rgba(139,92,246,.14);color:#a98bff}
  .status-succeeded,.status-success{background:rgba(0,190,87,.14);color:#2fd67f}
  .status-failed,.status-rolledback{background:rgba(250,47,43,.14);color:#ff6b68}
  .status-running{background:rgba(0,150,221,.14);color:#43b6ee}
  .status-queued,.status-cancelled{background:rgba(107,125,146,.18);color:var(--txt2)}
  .status-map .d{background:currentColor}

  /* Tables */
  .table-wrap{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
  .table-toolbar{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap}
  .table-toolbar input,.table-toolbar select{background:var(--bg2);border:1px solid var(--border);border-radius:7px;
                        padding:7px 10px;color:var(--txt);font-size:13px;font-family:inherit}
  .table-toolbar input:focus,.table-toolbar select:focus{outline:none;border-color:var(--blue)}
  .table-toolbar .grow{flex:1}
  table{width:100%;border-collapse:collapse}
  th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--txt3);
     font-weight:600;padding:11px 16px;border-bottom:1px solid var(--border);background:var(--bg2)}
  td{padding:12px 16px;border-bottom:1px solid var(--border);font-size:13px;color:var(--txt)}
  tr:last-child td{border-bottom:none}
  tbody tr:hover{background:var(--panel2)}
  td .muted{color:var(--txt3);font-size:12px}
  .mono{font-family:var(--mono);font-size:12.5px}
  .secret{font-family:var(--mono);color:var(--txt3);letter-spacing:1px}
  .tprogress{width:90px;height:6px;background:var(--bg2);border-radius:4px;overflow:hidden;display:inline-block;vertical-align:middle}
  .tprogress i{display:block;height:100%;background:var(--blue);border-radius:4px}
  .pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--border);font-size:12.5px;color:var(--txt3)}
  .pagination .pages{display:flex;gap:4px}
  .pagination .pages button{background:var(--bg2);border:1px solid var(--border);color:var(--txt2);
                width:30px;height:30px;border-radius:7px;cursor:pointer;font-family:inherit}
  .pagination .pages button.on{background:var(--blue);border-color:var(--blue);color:#fff}
  .table-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
  .inline-form{display:inline-flex}
  .action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .action-grid form{min-width:0}
  .action-grid .btn{min-height:38px;width:100%;justify-content:center;white-space:normal;text-align:center;line-height:1.25}
  .table-responsive{overflow-x:auto}
  .table,.data-table{width:100%;border-collapse:collapse}
  .form-control,.form-select{background:var(--bg2);border:1px solid var(--border);border-radius:8px;
                        padding:9px 12px;color:var(--txt);font-size:13px;font-family:inherit}
  .form-control:focus,.form-select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,150,221,.15)}
  .text-end{text-align:right}.text-muted{color:var(--txt3)}.small{font-size:12px}
  .w-100{width:100%;justify-content:center}

  /* Console / logs */
  .console{background:#0a0e14;border:1px solid var(--border);border-radius:var(--radius);font-family:var(--mono);
           font-size:12.5px;line-height:1.7;padding:14px 16px;height:340px;overflow-y:auto;color:#c8d3e0}
  .console-card{margin-top:16px}
  .console .l{display:flex;gap:12px;white-space:pre-wrap}
  .console .t{color:var(--txt3);flex-shrink:0}
  .console .lv{flex-shrink:0;font-weight:700;width:52px}
  .lv-INFO{color:#43b6ee}.lv-OK{color:#2fd67f}.lv-WARN{color:var(--amber)}.lv-ERR{color:#ff6b68}.lv-DBG{color:var(--txt3)}
  .console-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
  .console-head .live{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--green)}
  .console-head .live .d{width:8px;height:8px;border-radius:50%;background:var(--green);animation:pulse 1.5s infinite}

  /* Progress bar big */
  .pbar{height:8px;background:var(--bg2);border-radius:6px;overflow:hidden}
  .pbar i{display:block;height:100%;border-radius:6px;transition:width .4s}

  /* Meters */
  .meter{margin-bottom:16px}
  .meter .mh{display:flex;justify-content:space-between;font-size:12.5px;margin-bottom:6px}
  .meter .mh b{font-weight:600}
  .meter .mh span{color:var(--txt3)}

  /* Timeline */
  .timeline{position:relative;padding-left:24px}
  .timeline::before{content:"";position:absolute;left:7px;top:4px;bottom:4px;width:2px;background:var(--border2)}
  .tl-item{position:relative;padding-bottom:20px}
  .tl-item::before{content:"";position:absolute;left:-21px;top:3px;width:12px;height:12px;border-radius:50%;
                   background:var(--panel);border:2px solid var(--blue)}
  .tl-item.ok::before{border-color:var(--green)}
  .tl-item.err::before{border-color:var(--red)}
  .tl-item.run::before{border-color:var(--blue);animation:pulse 1.5s infinite}
  .tl-item .tt{font-size:13px;font-weight:600}
  .tl-item .td{font-size:12px;color:var(--txt3);margin-top:2px}
  .tl-item .tm{font-size:11px;color:var(--txt3);margin-top:3px}

  /* Detail sections */
  .detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px}
  @media(max-width:1000px){.detail-grid{grid-template-columns:1fr}}
  .field{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--border);font-size:13px}
  .field:last-child{border-bottom:none}
  .field .k{color:var(--txt3)}
  .field .v{font-weight:500;text-align:right}

  /* Empty & skeleton */
  .empty{text-align:center;padding:44px 20px;color:var(--txt3)}
  .empty.compact{padding:16px;text-align:left;margin:16px 0;border:1px dashed var(--border2);border-radius:8px}
  .empty .ei{font-size:40px;opacity:.4;margin-bottom:12px}
  .empty h4{color:var(--txt2);font-weight:600;margin-bottom:6px;font-size:15px}
  .empty p{font-size:13px;max-width:340px;margin:0 auto 16px}
  .skel{background:linear-gradient(90deg,var(--panel) 25%,var(--panel2) 37%,var(--panel) 63%);
        background-size:400% 100%;animation:sk 1.4s infinite;border-radius:6px}
  @keyframes sk{0%{background-position:100% 0}100%{background-position:-100% 0}}

  /* Modal */
  .modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(2px);z-index:100;
            display:none;align-items:center;justify-content:center;padding:20px}
  .modal-bg.show{display:flex;animation:fade .2s}
  .modal{background:var(--panel);border:1px solid var(--border2);border-radius:14px;max-width:480px;width:100%;
         box-shadow:0 20px 60px rgba(0,0,0,.5);overflow:hidden}
  .modal.danger{border-top:3px solid var(--red)}
  .modal-h{padding:20px 22px 0;display:flex;gap:14px;align-items:flex-start}
  .modal-h .mi{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:22px;flex-shrink:0}
  .modal-h h3{font-size:17px;font-weight:600}
  .modal-h p{font-size:13px;color:var(--txt2);margin-top:4px}
  .modal-b{padding:16px 22px}
  .modal-b .warn-box{background:rgba(250,47,43,.08);border:1px solid rgba(250,47,43,.3);border-radius:9px;
                     padding:12px 14px;font-size:12.5px;color:#ffb0ae;margin-bottom:14px}
  .modal-b label{font-size:12.5px;color:var(--txt2);display:block;margin-bottom:6px}
  .modal-b input{width:100%;background:var(--bg2);border:1px solid var(--border2);border-radius:8px;
                 padding:9px 12px;color:var(--txt);font-family:var(--mono);font-size:13px}
  .modal-b input:focus{outline:none;border-color:var(--red)}
  .modal-f{padding:14px 22px 20px;display:flex;gap:10px;justify-content:flex-end;border-top:1px solid var(--border)}

  /* Toast */
  .toasts{position:fixed;bottom:24px;right:24px;z-index:200;display:flex;flex-direction:column;gap:10px}
  .toast{background:var(--panel2);border:1px solid var(--border2);border-left:3px solid var(--blue);border-radius:9px;
         padding:13px 16px;display:flex;align-items:center;gap:12px;min-width:300px;box-shadow:var(--shadow);
         animation:slideIn .3s}
  .toast.ok{border-left-color:var(--green)} .toast.err{border-left-color:var(--red)}
  .toast .ti{font-size:19px}
  .toast b{font-size:13px;display:block} .toast span{font-size:12px;color:var(--txt3)}
  @keyframes slideIn{from{transform:translateX(120%)}to{transform:none}}

  /* Forms */
  .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  @media(max-width:800px){.form-grid{grid-template-columns:1fr}}
  .form-group{margin-bottom:4px}
  .form-group label{font-size:12.5px;color:var(--txt2);display:block;margin-bottom:6px;font-weight:500}
  .form-group input,.form-group select{width:100%;background:var(--bg2);border:1px solid var(--border);border-radius:8px;
                 padding:9px 12px;color:var(--txt);font-size:13px;font-family:inherit}
  .form-group input:focus,.form-group select:focus{outline:none;border-color:var(--blue)}
  .form-group .hint{font-size:11px;color:var(--txt3);margin-top:4px}
  .ops-layout{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:16px;align-items:start}
  .stack-form{display:grid;gap:12px}
  .filter-bar{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
  .filter-bar .form-group{min-width:280px}
  .compact-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .check-list{display:grid;gap:7px;max-height:170px;overflow:auto;padding:8px;background:var(--bg2);border:1px solid var(--border);border-radius:9px}
  .mini-check{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:7px;color:var(--txt2);font-size:12.5px;cursor:pointer}
  .mini-check:hover{background:var(--panel2);color:var(--txt)}
  .mini-check input{accent-color:var(--blue)}
  .admin-form{max-width:1180px}
  .admin-form .form-error{display:block;background:rgba(250,47,43,.1);border:1px solid rgba(250,47,43,.35);color:#ffb0ae;
               font-size:12.5px;padding:10px 12px;border-radius:8px;margin-bottom:16px}
  .admin-form .form-error:empty{display:none}
  .tenant-form-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:18px}
  .tenant-form-grid .wide{grid-column:span 2}
  .admin-form .inp{position:relative}
  .admin-form .inp input{background:var(--bg2);border:1px solid var(--border);border-radius:9px;
               padding:10px 12px 10px 42px;color:var(--txt);font-size:13px;font-family:inherit}
  .admin-form .inp input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,150,221,.15)}
  .admin-form .inp .pi{position:absolute;left:12px;top:10px;font-size:12px;min-width:18px;color:var(--txt3);
               font-family:var(--mono);font-weight:700;pointer-events:none}
  .choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .choice-card{display:flex;gap:12px;align-items:flex-start;padding:13px 14px;background:var(--bg2);
               border:1px solid var(--border);border-radius:9px;cursor:pointer;transition:.18s}
  .choice-card:hover{border-color:var(--border2);background:var(--panel2)}
  .choice-card.on{border-color:rgba(0,150,221,.75);background:rgba(0,150,221,.12);box-shadow:0 0 0 3px rgba(0,150,221,.08)}
  .choice-card input{position:absolute;opacity:0;pointer-events:none}
  .choice-dot{width:18px;height:18px;border-radius:50%;border:1px solid var(--border2);background:var(--panel);
              display:grid;place-items:center;flex-shrink:0;margin-top:1px}
  .choice-card.on .choice-dot{border-color:var(--blue);background:var(--blue)}
  .choice-card.on .choice-dot::after{content:"";width:6px;height:6px;border-radius:50%;background:#fff}
  .choice-card b,.check-row b{display:block;font-size:13px;font-weight:600;color:var(--txt);line-height:1.25}
  .choice-card small,.check-row small{display:block;font-size:11.5px;color:var(--txt3);line-height:1.45;margin-top:3px}
  .form-flags{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-self:end}
  .check-row{display:flex;gap:11px;align-items:flex-start;padding:11px 12px;background:var(--bg2);
             border:1px solid var(--border);border-radius:9px;cursor:pointer;min-height:64px}
  .check-row:hover{background:var(--panel2);border-color:var(--border2)}
  .check-row input{position:absolute;opacity:0;pointer-events:none}
  .check-box{width:18px;height:18px;border-radius:5px;border:1px solid var(--border2);background:var(--panel);
             display:grid;place-items:center;flex-shrink:0;margin-top:1px;color:#fff;font-size:12px}
  .check-row.on .check-box{background:var(--blue);border-color:var(--blue)}
  .check-row.on .check-box::after{content:"✓"}
  .warn-inline{display:flex;gap:12px;align-items:flex-start;margin-top:18px;padding:13px 14px;
               border:1px solid rgba(245,166,35,.35);background:rgba(245,166,35,.08);border-radius:9px}
  .warn-inline span{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;
                    background:rgba(245,166,35,.16);color:var(--amber);font-weight:800;flex-shrink:0}
  .warn-inline b{font-size:13px}
  .warn-inline p{font-size:12.5px;color:var(--txt2);margin-top:2px}
  .form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
  @media(max-width:1100px){.tenant-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
  @media(max-width:900px){.ops-layout{grid-template-columns:1fr}}
  @media(max-width:760px){.choice-grid,.tenant-form-grid,.form-flags,.action-grid,.compact-form-grid{grid-template-columns:1fr}.tenant-form-grid .wide{grid-column:auto}.form-actions{justify-content:flex-start;flex-wrap:wrap}}
  .switch{display:flex;align-items:center;gap:10px;padding:10px 0}
  .switch .sw{width:38px;height:22px;background:var(--border2);border-radius:12px;position:relative;cursor:pointer;transition:.2s}
  .switch .sw::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.2s}
  .switch .sw.on{background:var(--green)} .switch .sw.on::after{left:18px}
  .switch span{font-size:13px}

  .tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:20px}
  .tabs button{background:none;border:none;color:var(--txt2);padding:10px 16px;font-size:13.5px;cursor:pointer;
               border-bottom:2px solid transparent;font-family:inherit;font-weight:500}
  .tabs button.on{color:#fff;border-bottom-color:var(--blue)}
  .mobile-note{display:none}
  @media(max-width:640px){
    .app{grid-template-columns:1fr}.sidebar{display:none}.header .search{display:none}
  }

  /* ---------- LOGIN ---------- */
  .login{position:fixed;inset:0;z-index:500;display:flex;background:var(--bg);
         background-image:radial-gradient(1200px 600px at 80% -10%,rgba(0,150,221,.18),transparent 60%),
                          radial-gradient(900px 500px at 10% 110%,rgba(0,190,87,.10),transparent 55%)}
  .login.hide{display:none}
  .login-aside{flex:1;padding:56px;display:flex;flex-direction:column;justify-content:space-between;
               border-right:1px solid var(--border);position:relative;overflow:hidden}
  .login-aside .lbrand{display:flex;align-items:center;gap:12px}
  .login-aside .lbrand .logo{width:44px;height:44px;border-radius:11px;background:linear-gradient(135deg,var(--blue),#00c2ff);
               display:grid;place-items:center;font-weight:800;color:#fff;font-size:19px}
  .login-aside .lbrand b{font-size:19px}.login-aside .lbrand span{font-size:12px;color:var(--txt3);display:block}
  .login-hero h2{font-size:34px;font-weight:600;letter-spacing:-.5px;line-height:1.2;max-width:460px;margin-bottom:16px}
  .login-hero p{color:var(--txt2);font-size:15px;max-width:420px;line-height:1.6}
  .login-hero .feats{display:flex;flex-direction:column;gap:12px;margin-top:28px}
  .login-hero .feats div{display:flex;align-items:center;gap:11px;font-size:14px;color:var(--txt2)}
  .login-hero .feats .fi{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:15px}
  .login-foot{font-size:12px;color:var(--txt3)}
  .login-panel{width:440px;display:flex;align-items:center;justify-content:center;padding:40px;background:var(--bg2)}
  .login-box{width:100%;max-width:340px}
  .login-box .env-pick{display:flex;gap:8px;margin-bottom:24px}
  .login-box .env-pick button{flex:1;background:var(--panel);border:1px solid var(--border);color:var(--txt2);
               padding:8px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
  .login-box .env-pick button.on-prod{background:rgba(250,47,43,.14);border-color:rgba(250,47,43,.45);color:#ff6b68}
  .login-box .env-pick button.on-stg{background:rgba(245,166,35,.14);border-color:rgba(245,166,35,.45);color:var(--amber)}
  .login-box h3{font-size:22px;font-weight:600;margin-bottom:6px}
  .login-box .lsub{color:var(--txt3);font-size:13px;margin-bottom:24px}
  .login-box .form-group{margin-bottom:16px}
  .login-box label{font-size:12.5px;color:var(--txt2);display:block;margin-bottom:7px;font-weight:500}
  .login-box .inp{position:relative}
  .login-box .inp input{width:100%;background:var(--panel);border:1px solid var(--border);border-radius:9px;
               padding:11px 12px 11px 38px;color:var(--txt);font-size:14px;font-family:inherit}
  .login-box .inp input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,150,221,.15)}
  .login-box .inp .pi{position:absolute;left:12px;top:11px;font-size:15px;opacity:.6}
  .login-box .inp .toggle{position:absolute;right:12px;top:11px;font-size:13px;color:var(--txt3);cursor:pointer;user-select:none}
  .login-box .row{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
  .login-box .remember{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--txt2);cursor:pointer}
  .login-box .remember .cb{width:16px;height:16px;border-radius:4px;border:1px solid var(--border2);background:var(--panel);display:grid;place-items:center;font-size:11px;color:#fff}
  .login-box .remember .cb.on{background:var(--blue);border-color:var(--blue)}
  .login-box .flink{font-size:12.5px;color:var(--blue);cursor:pointer}
  .login-box .btn-login{width:100%;justify-content:center;padding:11px;font-size:14px}
  .login-box .err{background:rgba(250,47,43,.1);border:1px solid rgba(250,47,43,.35);color:#ffb0ae;
               font-size:12.5px;padding:10px 12px;border-radius:8px;margin-bottom:16px;display:none}
  .login-box .err.show{display:block}
  .login-box .hint-demo{margin-top:22px;padding:11px 13px;background:var(--panel);border:1px dashed var(--border2);
               border-radius:8px;font-size:11.5px;color:var(--txt3);line-height:1.6}
  @media(max-width:820px){.login-aside{display:none}.login-panel{width:100%}}
