:root{--blue:#0b63f6;--blue2:#0754d5;--navy:#0d1f3c;--text:#122238;--muted:#6c7d92;--bg:#f5f7fb;--line:#e1e7ef;--soft:#eef4ff;--green:#169b69;--red:#d9485f;--amber:#c98208;--sidebar:#0d1d36;--white:#fff;--shadow:0 12px 36px rgba(18,38,63,.08)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.login-view{min-height:100vh;background:linear-gradient(135deg,#071326 0%,#0e2d59 58%,#0b63f6 130%);padding:28px}.login-brand{height:46px;display:flex;align-items:center;gap:10px;color:#fff;max-width:1200px;margin:auto}.login-brand b,.logo b{display:block;font-size:17px}.login-brand span,.logo span{display:block;font-size:10px;opacity:.66}.mark{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#1d7cff,#75b8ff);color:#fff;font-weight:900;font-size:20px;box-shadow:0 8px 22px rgba(11,99,246,.28)}.mark.sm{width:32px;height:32px;border-radius:9px;font-size:15px}.login-panel{max-width:1080px;margin:8vh auto 0;display:grid;grid-template-columns:1.15fr .8fr;gap:70px;align-items:center}.login-copy{color:#fff}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.16em;color:#8ec3ff}.login-copy h1{font-size:52px;line-height:1.03;letter-spacing:-.045em;max-width:660px;margin:16px 0}.login-copy p{font-size:17px;line-height:1.6;color:#c4d5ec;max-width:550px}.trust{display:flex;gap:20px;margin-top:28px;color:#d9e7f8;font-size:12px}.login-card{background:#fff;border-radius:20px;padding:32px;box-shadow:0 30px 90px rgba(0,0,0,.3)}.brandline{display:flex;gap:9px;align-items:center;margin-bottom:28px}.login-card h2{margin:0;font-size:25px}.login-card>p{color:var(--muted);margin:7px 0 24px}.login-card label{display:block;font-size:12px;font-weight:700;margin:14px 0;color:#405168}.login-card label em{float:right;font-style:normal;color:#9aa6b5;font-weight:500}.login-card input,.field{width:100%;border:1px solid #d7e0ea;background:#fff;border-radius:9px;padding:12px 13px;margin-top:7px;outline:none}.login-card input:focus,.field:focus{border-color:#7eb3ff;box-shadow:0 0 0 3px #eaf3ff}.button{border:0;border-radius:9px;padding:10px 14px;font-weight:750;font-size:12px}.button.primary{background:var(--blue);color:#fff}.button.primary:hover{background:var(--blue2)}.button.secondary{background:#fff;border:1px solid var(--line);color:#34465d}.button.danger{background:#fff1f3;color:#b92d45;border:1px solid #ffd5dc}.button.wide{width:100%;padding:13px}.form-error{color:var(--red);font-size:12px;margin-top:12px}.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:var(--sidebar);color:#d9e4f4;display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;width:250px;z-index:40}.logo{height:72px;display:flex;align-items:center;gap:10px;padding:0 20px;border-bottom:1px solid rgba(255,255,255,.07)}.workspace-badge{font-size:10px;font-weight:800;letter-spacing:.09em;color:#8ea6c5;padding:18px 20px 7px;text-transform:uppercase}nav{overflow:auto;padding:0 10px 20px}.nav-title{font-size:9px;font-weight:800;letter-spacing:.13em;color:#637c9e;margin:18px 10px 6px}.nav-link,.side-link{width:100%;border:0;background:transparent;color:#aebed3;display:flex;align-items:center;gap:10px;border-radius:8px;padding:9px 10px;text-align:left;font-size:12px}.nav-link:hover,.side-link:hover{background:rgba(255,255,255,.05);color:#fff}.nav-link.active{background:#1765dc;color:#fff;box-shadow:0 8px 20px rgba(4,55,130,.35)}.nav-icon{width:18px;text-align:center;font-size:14px}.sidebar-bottom{margin-top:auto;border-top:1px solid rgba(255,255,255,.07);padding:10px}.main{margin-left:250px;min-width:0}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:13px;padding:0 24px;position:sticky;top:0;z-index:25}.searchbox{max-width:600px;flex:1;height:38px;border:1px solid var(--line);border-radius:9px;background:#f9fbfd;display:flex;align-items:center;padding:0 11px;gap:8px}.searchbox input{border:0;outline:0;background:transparent;flex:1;font-size:12px}.searchbox kbd{font-size:9px;color:#8393a7;border:1px solid #dce3ea;background:#fff;border-radius:5px;padding:3px 5px}.help-button{border:1px solid #cfe2ff;background:#eef6ff;color:#0757c8;border-radius:9px;padding:9px 12px;font-size:11px;font-weight:800}.user-chip{display:flex;gap:8px;align-items:center;padding-left:10px}.avatar{width:34px;height:34px;border-radius:10px;background:#122e55;color:#fff;display:grid;place-items:center;font-weight:800}.user-chip b{display:block;font-size:11px}.user-chip span{display:block;font-size:9px;color:var(--muted);text-transform:capitalize}.content{padding:28px;max-width:1550px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.page-head h1{font-size:25px;letter-spacing:-.025em;margin:3px 0}.page-head p{margin:0;color:var(--muted);font-size:12px}.eyebrow-dark{font-size:9px;font-weight:850;letter-spacing:.14em;color:#68809d}.actions{display:flex;gap:8px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:18px}.stat{background:#fff;border:1px solid var(--line);border-radius:13px;padding:16px}.stat span{display:block;font-size:10px;color:var(--muted);font-weight:650}.stat strong{display:block;font-size:25px;margin:5px 0 2px;letter-spacing:-.04em}.stat small{font-size:10px;color:#8291a4}.panel{background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 2px 5px rgba(18,38,63,.02);margin-bottom:16px}.panel-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}.panel-head h2{font-size:13px;margin:0}.panel-head p{font-size:10px;color:var(--muted);margin:3px 0 0}.panel-body{padding:16px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:11px}.data-table th{text-align:left;padding:9px 12px;color:#738398;background:#fafbfd;border-bottom:1px solid var(--line);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.data-table td{padding:11px 12px;border-bottom:1px solid #edf0f4;vertical-align:middle}.data-table tr:hover td{background:#fbfdff}.status{display:inline-flex;align-items:center;gap:5px;border-radius:99px;padding:4px 7px;font-size:9px;font-weight:800}.status.ok{background:#eaf9f3;color:#0b7c51}.status.warn{background:#fff7e7;color:#9b6300}.status.off{background:#fff0f2;color:#b32942}.dot{width:6px;height:6px;border-radius:50%;background:currentColor}.two-col{display:grid;grid-template-columns:1.45fr .8fr;gap:16px}.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.quick{border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px;text-align:left}.quick:hover{border-color:#9ec4ff;box-shadow:0 8px 22px rgba(30,102,205,.08)}.quick i{display:grid;width:34px;height:34px;border-radius:9px;background:#eff5ff;place-items:center;font-style:normal;color:#0b63f6;margin-bottom:10px}.quick b{display:block;font-size:11px}.quick span{display:block;color:var(--muted);font-size:9px;margin-top:4px}.tool-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.tool-group{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden}.tool-group h3{font-size:11px;padding:12px 14px;margin:0;background:#fafbfd;border-bottom:1px solid var(--line)}.tool-link{width:100%;border:0;border-bottom:1px solid #edf1f5;background:#fff;text-align:left;padding:10px 13px;display:flex;justify-content:space-between;font-size:10.5px;color:#33455c}.tool-link:hover{background:#f7faff;color:#0b63f6}.tool-link:last-child{border-bottom:0}.tool-link span{color:#9aa6b5}.fm-shell{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden}.fm-toolbar{display:flex;align-items:center;gap:7px;padding:10px;border-bottom:1px solid var(--line);background:#fbfcfe}.fm-site{width:230px}.fm-path{display:flex;align-items:center;gap:3px;flex:1;min-width:0;padding:0 8px}.crumb{border:0;background:transparent;color:#58708d;font-size:10px;padding:5px}.crumb:hover{color:var(--blue)}.fm-table{width:100%;border-collapse:collapse;font-size:11px}.fm-table th{background:#f7f9fc;text-align:left;font-size:9px;color:#738398;text-transform:uppercase;letter-spacing:.08em;padding:9px 12px;border-bottom:1px solid var(--line)}.fm-table td{padding:9px 12px;border-bottom:1px solid #edf1f5}.fm-table tr{cursor:default}.fm-table tbody tr:hover{background:#f7faff}.file-name{display:flex;align-items:center;gap:8px;font-weight:600}.file-icon{width:24px;height:24px;border-radius:6px;background:#eef4ff;color:#1766d9;display:grid;place-items:center;font-size:11px}.fm-empty{text-align:center;padding:60px;color:var(--muted)}.quota{margin:10px 0}.quota-row{display:flex;justify-content:space-between;font-size:10px}.bar{height:7px;background:#edf1f5;border-radius:99px;overflow:hidden;margin-top:6px}.bar i{height:100%;display:block;background:#1765dc;border-radius:99px}.rescue-hero{background:linear-gradient(135deg,#0e1e38,#0b63f6);color:#fff;border-radius:16px;padding:23px;display:grid;grid-template-columns:1fr auto;align-items:center;margin-bottom:16px}.rescue-hero p{color:#cce0ff;font-size:12px;max-width:650px}.rescue-options{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.rescue-option{background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px;text-align:left}.rescue-option b{font-size:11px}.rescue-option p{font-size:9px;color:var(--muted)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.service-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:17px}.service-card .label{font-size:9px;text-transform:uppercase;color:#1765dc;font-weight:850;letter-spacing:.08em}.service-card h3{font-size:14px;margin:7px 0}.service-card p{font-size:10px;color:var(--muted);min-height:34px}.price{font-size:17px;font-weight:850;margin:12px 0}.drawer-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.drawer-form .full{grid-column:1/-1}.modal-backdrop{position:fixed;inset:0;background:rgba(7,18,35,.55);display:grid;place-items:center;z-index:100;padding:20px}.modal{width:min(620px,96vw);max-height:88vh;overflow:auto;background:#fff;border-radius:16px;box-shadow:0 30px 100px rgba(0,0,0,.28);padding:22px;position:relative}.modal h2{margin:0 0 5px;font-size:19px}.modal p{font-size:11px;color:var(--muted)}.modal-x{position:absolute;right:14px;top:12px;border:0;background:#f1f4f8;width:30px;height:30px;border-radius:8px;font-size:18px}.modal label{font-size:10px;font-weight:700;color:#566a82}.modal input,.modal select,.modal textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px;margin-top:5px}.modal textarea{min-height:160px;font-family:ui-monospace,monospace}.toast{position:fixed;right:20px;bottom:20px;background:#0e213d;color:#fff;border-radius:10px;padding:11px 14px;font-size:11px;box-shadow:var(--shadow);transform:translateY(80px);opacity:0;transition:.2s;z-index:150}.toast.show{transform:none;opacity:1}.empty{padding:34px;text-align:center;color:var(--muted);font-size:11px}.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#0d1d31;color:#d9e7f9;padding:12px;border-radius:9px;font-size:10px;white-space:pre-wrap;overflow:auto}.mobile-only{display:none}.icon-button{border:0;background:#f4f6f9;border-radius:8px;padding:7px}.notice{border:1px solid #d9e8ff;background:#f3f8ff;color:#355a85;border-radius:10px;padding:11px 13px;font-size:10px}.danger-note{border-color:#ffd8de;background:#fff6f7;color:#94384a}.pill{border-radius:99px;padding:4px 7px;font-size:9px;font-weight:800;background:#eef4ff;color:#1765dc}
@media(max-width:1100px){.stats{grid-template-columns:repeat(2,1fr)}.quick-grid,.rescue-options{grid-template-columns:repeat(2,1fr)}.tool-groups,.service-grid{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}}@media(max-width:760px){.shell{display:block}.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.main{margin-left:0}.mobile-only{display:block}.content{padding:18px}.topbar{padding:0 12px}.searchbox kbd,.user-chip>div:last-child{display:none}.login-panel{grid-template-columns:1fr;margin-top:4vh}.login-copy{display:none}.login-view{padding:18px}.stats,.quick-grid,.rescue-options,.tool-groups,.service-grid,.three-col,.drawer-form{grid-template-columns:1fr}.page-head{display:block}.page-head .actions{margin-top:12px}.fm-toolbar{flex-wrap:wrap}.fm-site{width:100%}.fm-path{order:3;width:100%}}
/* AnglePanel V4.0.2 — layout hotfix
   Fixed sidebar is out-of-flow; the application shell must not reserve a CSS-grid column for it. */
.shell{
  display:block !important;
  min-height:100vh;
  width:100%;
}
.main{
  margin-left:250px !important;
  width:calc(100% - 250px) !important;
  min-width:0;
  min-height:100vh;
}
.topbar{
  width:100%;
}
.content{
  width:100%;
  max-width:1550px;
  margin:0 auto;
  padding:28px 32px 48px;
}
.page-head{
  width:100%;
}
.page-head > div:first-child{
  min-width:0;
  max-width:780px;
}
.page-head h1{
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
}
.stats{
  width:100%;
}
.panel{
  width:100%;
}
.sidebar{
  overflow:hidden;
}
.sidebar nav{
  flex:1;
  min-height:0;
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:#455d7b transparent;
}
.sidebar nav::-webkit-scrollbar{width:5px}
.sidebar nav::-webkit-scrollbar-track{background:transparent}
.sidebar nav::-webkit-scrollbar-thumb{background:#455d7b;border-radius:99px}
.sidebar-bottom{
  flex-shrink:0;
  background:var(--sidebar);
}
@media(max-width:760px){
  .shell{display:block !important}
  .main{
    margin-left:0 !important;
    width:100% !important;
  }
  .content{
    padding:18px 14px 40px;
  }
}
