/* FASTXRM — legacy enterprise theme (Office 2007 / SharePoint 2007 / Windows Aero).
   Dense, square panels, 1px borders, blue gradients, light-blue headers. No modern SaaS. */
:root{
  --blue1:#eaf2fb; --blue2:#d6e6f7; --blue3:#c2d8ef; --blueln:#a9c3e0;
  --hdr1:#5b9bd5; --hdr2:#2e6da4; --hdrln:#1f4e79;
  --grad-btn:linear-gradient(#fdfefe,#e6eef7); --grad-btn-h:linear-gradient(#fff,#dcebfa);
  --grad-hdr:linear-gradient(#7fb2e0,#2e6da4); --grad-band:linear-gradient(#f4f9fe,#dbe8f6);
  --ink:#14283c; --ink2:#3a5a78; --muted:#6b829a; --line:#9fb8d4; --line2:#c7d7ea;
  --row-alt:#f4f9fe; --sel:#fde9a9; --sel-ln:#e8c65a; --ok:#2e7d32; --warn:#b26a00; --err:#c0392b;
  --win-shadow:0 6px 22px rgba(20,50,90,.35);
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{font:11px/1.45 Tahoma,"Segoe UI",Verdana,sans-serif;color:var(--ink);background:#c9d9ec;user-select:none;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:11px Tahoma,"Segoe UI",sans-serif}
a{color:#1f5c9e}

/* ── app shell: north / menubar / toolbar / [west|center] / south ── */
#app{display:none;height:100vh;flex-direction:column;background:#dfeaf6}
.north{height:38px;flex:0 0 auto;background:var(--grad-hdr);border-bottom:1px solid var(--hdrln);display:flex;align-items:center;gap:10px;padding:0 10px;color:#fff}
.north .brand{font-weight:bold;font-size:15px;letter-spacing:.5px;text-shadow:0 1px 1px rgba(0,0,0,.35)}
.north .brand b{color:#ffe07a}
.north .spacer{flex:1}
.north .ctx{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.35);border-radius:2px;padding:2px 8px;color:#fff}
.north .who{opacity:.95}
.menubar{height:24px;flex:0 0 auto;background:var(--grad-band);border-bottom:1px solid var(--line);display:flex;align-items:stretch}
.menubar .m{padding:0 12px;display:flex;align-items:center;cursor:default;border-right:1px solid transparent}
.menubar .m:hover{background:var(--grad-btn-h);border:1px solid var(--blueln);border-bottom:0}
.toolbar{height:32px;flex:0 0 auto;background:linear-gradient(#eef5fc,#dbe8f6);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:3px;padding:0 6px}
.sep{width:1px;height:20px;background:var(--line2);margin:0 4px}
.mid{flex:1;display:flex;min-height:0}
.west{width:216px;flex:0 0 auto;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:auto}
.center{flex:1;min-width:0;display:flex;flex-direction:column;background:#c9d9ec}
.south{height:24px;flex:0 0 auto;background:var(--grad-band);border-top:1px solid var(--line);display:flex;align-items:center;gap:0;font-size:11px;color:var(--ink2)}
.south .cell{padding:0 10px;border-right:1px solid var(--line2);height:100%;display:flex;align-items:center;gap:6px}
.south .spacer{flex:1;border:0}
.dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 3px rgba(46,125,50,.7)}

/* ── buttons ── */
.btn{background:var(--grad-btn);border:1px solid var(--blueln);border-radius:2px;padding:4px 10px;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;gap:6px;height:24px}
.btn:hover{background:var(--grad-btn-h);border-color:var(--hdr2)}
.btn:active{background:linear-gradient(#dcebfa,#c9def5)}
.btn:disabled{opacity:.5;cursor:default}
.btn.primary{background:linear-gradient(#5aa0dc,#2e6da4);border-color:var(--hdrln);color:#fff;font-weight:bold;text-shadow:0 1px 1px rgba(0,0,0,.3)}
.btn.primary:hover{background:linear-gradient(#6fb0e6,#357ab5)}
.btn.sm{height:20px;padding:2px 8px}
.icon{width:16px;height:16px;flex:0 0 auto;display:inline-block}

/* ── navigation tree (accordion) ── */
.nav-group{border-bottom:1px solid var(--line2)}
.nav-group>.gh{background:var(--grad-band);border-top:1px solid #fff;padding:5px 8px;font-weight:bold;color:var(--hdr2);cursor:pointer;display:flex;align-items:center;gap:6px}
.nav-group>.gh:hover{background:linear-gradient(#eef7ff,#d3e6fb)}
.nav-group .items{display:none}
.nav-group.open .items{display:block}
.nav-group .caret{margin-left:auto;color:var(--muted)}
.nav-item{padding:4px 8px 4px 26px;cursor:pointer;color:var(--ink);display:flex;align-items:center;gap:6px;white-space:nowrap}
.nav-item:hover{background:var(--blue1)}
.nav-item.active{background:linear-gradient(var(--blue2),var(--blue3));border:1px solid var(--blueln);padding-top:3px;padding-bottom:3px}

/* ── tab workspace ── */
.tabstrip{height:26px;flex:0 0 auto;background:linear-gradient(#dbe8f6,#c6d9ee);border-bottom:1px solid var(--hdr2);display:flex;align-items:flex-end;padding:0 4px;gap:2px;overflow-x:auto}
.tab{background:linear-gradient(#eaf2fb,#cfe0f3);border:1px solid var(--line);border-bottom:0;border-radius:4px 4px 0 0;padding:4px 8px 5px;display:flex;align-items:center;gap:6px;cursor:pointer;color:var(--ink2);max-width:190px}
.tab .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tab.active{background:linear-gradient(#ffffff,#f2f8ff);border-color:var(--hdr2);border-bottom:1px solid #fff;color:var(--ink);font-weight:bold;margin-bottom:-1px;padding-top:5px}
.tab .x{width:14px;height:14px;line-height:12px;text-align:center;border-radius:2px;color:var(--muted)}
.tab .x:hover{background:#f3c2bd;color:#a02820}
.workspace{flex:1;min-height:0;overflow:auto;padding:8px;background:#c9d9ec}
.view{display:none}
.view.active{display:block}

/* ── panels / fieldsets ── */
.panel{background:#fff;border:1px solid var(--line);border-radius:2px;margin-bottom:8px}
.panel>.ph{background:var(--grad-band);border-bottom:1px solid var(--line);padding:5px 9px;font-weight:bold;color:var(--hdr2);display:flex;align-items:center;gap:8px}
.panel>.ph .r{margin-left:auto;font-weight:normal}
.panel>.pb{padding:9px}
.panel>.pb.nopad{padding:0}
fieldset{border:1px solid var(--line2);border-radius:2px;margin:0 0 10px;padding:8px 10px}
legend{color:var(--hdr2);font-weight:bold;padding:0 5px}

/* ── forms ── */
.field{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.field label{width:120px;color:var(--ink2);text-align:right;flex:0 0 auto}
.field .ctl{flex:1}
input[type=text],input[type=email],input[type=password],select,textarea{width:100%;border:1px solid var(--line);border-radius:2px;padding:3px 5px;background:#fff}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--hdr2);box-shadow:0 0 3px rgba(46,109,164,.4)}
.hint{color:var(--muted)}

/* ── grid ── */
.grid{width:100%;border-collapse:collapse;background:#fff}
.grid th{background:var(--grad-band);border:1px solid var(--line2);border-top:0;padding:5px 8px;text-align:left;color:var(--hdr2);font-weight:bold;position:sticky;top:0;cursor:pointer;white-space:nowrap}
.grid th .s{color:var(--muted);font-size:9px;margin-left:4px}
.grid td{border:1px solid #e6eef8;padding:4px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.grid tr:nth-child(even) td{background:var(--row-alt)}
.grid tr:hover td{background:var(--blue1)}
.grid tr.sel td{background:var(--sel)}
.num{text-align:right;font-variant-numeric:tabular-nums}
.badge{display:inline-block;padding:1px 7px;border-radius:9px;border:1px solid;font-size:10px;line-height:15px}
.b-ok{background:#e6f4e6;border-color:#8fca8f;color:#256b28}
.b-mut{background:#eef2f6;border-color:#bcccdb;color:#5a6f84}
.b-warn{background:#fdf0dc;border-color:#e5bf7e;color:#8a5a00}
.link{color:#1f5c9e;cursor:pointer;text-decoration:underline}

/* ── modal window (Aero) ── */
.mask{position:fixed;inset:0;background:rgba(30,55,90,.35);display:flex;align-items:center;justify-content:center;z-index:50}
.win{background:#eef4fb;border:1px solid var(--hdrln);border-radius:5px;box-shadow:var(--win-shadow);min-width:420px;max-width:92vw}
.win .wh{background:var(--grad-hdr);border-radius:4px 4px 0 0;color:#fff;padding:6px 10px;font-weight:bold;display:flex;align-items:center;gap:8px;text-shadow:0 1px 1px rgba(0,0,0,.3)}
.win .wh .x{margin-left:auto;width:18px;height:18px;text-align:center;line-height:16px;border:1px solid rgba(255,255,255,.5);border-radius:2px;cursor:pointer}
.win .wh .x:hover{background:rgba(255,255,255,.25)}
.win .wb{padding:12px 14px;background:#fff;border-top:1px solid #fff}
.win .wf{padding:8px 12px;display:flex;justify-content:flex-end;gap:6px;border-top:1px solid var(--line2)}
.err-msg{background:#fdeaea;border:1px solid #e0a6a0;color:var(--err);padding:5px 8px;border-radius:2px;margin-bottom:8px}
.empty{padding:26px;text-align:center;color:var(--muted)}
.kpis{display:flex;gap:8px;flex-wrap:wrap}
.kpi{flex:1;min-width:130px;background:#fff;border:1px solid var(--line);border-radius:2px}
.kpi .k{background:var(--grad-band);border-bottom:1px solid var(--line2);padding:4px 8px;color:var(--ink2)}
.kpi .v{padding:10px;font-size:22px;font-weight:bold;color:var(--hdr2);font-variant-numeric:tabular-nums}
.toolbar-title{font-weight:bold;color:var(--hdr2);margin-left:4px}
.spin{color:var(--muted);padding:20px;text-align:center}

/* ── login ── */
#login{height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#3f79b0,#1f4e79)}
#login .lw{width:360px;background:#eef4fb;border:1px solid var(--hdrln);border-radius:6px;box-shadow:var(--win-shadow)}
#login .lh{background:var(--grad-hdr);color:#fff;padding:12px 16px;border-radius:5px 5px 0 0}
#login .lh .t{font-size:18px;font-weight:bold;letter-spacing:.5px}
#login .lh .t b{color:#ffe07a}
#login .lh .s{opacity:.9;font-size:11px}
#login .lb{padding:16px}
#login .field label{width:78px}
#login .lf{padding:0 16px 16px;text-align:right}
