
:root{
      --ink:#0B0F17;
      --signal:#EF1735;
      --surface:#F4F6F8;
      --line:#DCE2EA;
      --line-strong:#C5CCD8;
      --muted:#667085;
      --ok:#0F9F62;
      --warn:#B45309;
      --white:#FFFFFF;
      --font-body:Inter,"Segoe UI",Arial,sans-serif;
      --font-display:Inter,"Segoe UI",Arial,sans-serif;
      --shadow-card:0 10px 28px rgba(15,23,42,.045);
    }
*{box-sizing:border-box}
body{
      margin:0;
      background:linear-gradient(135deg,#ffffff 0%,#f7f8fa 55%,#eef1f5 100%);
      color:var(--ink);
      font-family:var(--font-body);
      font-size:13px;
      font-weight:400;
      line-height:1.32;
      overflow:hidden;
    }
.dot{width:10px;height:10px;background:var(--signal);border-radius:2px}
.short{display:none}
.hero,.card{
      background:#fff;
      border:1px solid var(--line);
      border-radius:18px;
      box-shadow:var(--shadow-card);
      padding:16px 18px;
      margin-bottom:16px;
    }
.connection-badge{
      display:inline-flex;
      align-items:center;
      gap:6px;
      border:1px solid #D7DEE5;
      border-radius:999px;
      padding:3px 8px;
      color:#5F666A;
      font-size:10px;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      white-space:nowrap;
    }
.connection-dot{
      width:8px;
      height:8px;
      border-radius:2px;
      background:#8A949E;
      box-shadow:0 0 0 2px rgba(138,148,158,.12);
    }
.connection-badge.is-online .connection-dot{
      background:var(--ok);
      box-shadow:0 0 0 2px rgba(0,125,71,.14);
    }
.connection-badge.is-offline .connection-dot{
      background:var(--signal);
      box-shadow:0 0 0 2px rgba(213,0,50,.14);
    }
h1,h2,h3{margin:0 0 6px;font-family:var(--font-display);font-weight:850;letter-spacing:-.02em;text-transform:none;line-height:1.12;color:#05070b}
h1{font-size:19px}
h2{font-size:18px}
h3{font-size:14px}
p{margin:0 0 7px}
.section-title{display:flex;align-items:center;gap:9px}
.section-title::before{
      content:"";
      width:9px;
      height:9px;
      background:var(--signal);
      border-radius:2px;
      flex:0 0 auto;
    }
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}



.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
button,.button{
      border:1px solid var(--line);
      border-radius:14px;
      background:#fff;
      color:var(--ink);
      padding:10px 14px;
      font-family:var(--font-body);
      font-weight:800;
      font-size:12px;
      line-height:1.1;
      min-height:40px;
      cursor:pointer;
      text-decoration:none;
      transition:background .14s ease,border-color .14s ease,color .14s ease;
    }
button.primary{background:var(--ink);border-color:var(--ink);color:#fff}
button.signal{background:var(--signal);border-color:var(--signal);color:#fff;box-shadow:0 12px 24px rgba(239,23,53,.16)}
button.danger{border-color:rgba(213,0,50,.42);color:var(--signal);background:#fff}
button:hover,.button:hover{border-color:var(--line-strong);box-shadow:0 8px 22px rgba(15,23,42,.07);transform:none}
button.primary:hover{background:var(--signal);border-color:var(--signal);color:#fff}
button.danger:hover{background:var(--signal);border-color:var(--signal);color:#fff}
button:focus-visible,.button:focus-visible{
      outline:3px solid rgba(213,0,50,.18);
      outline-offset:2px;
    }
button:disabled{cursor:not-allowed;opacity:.42}
input[type=file]{
      width:100%;
      border:1px solid var(--line);
      border-radius:14px;
      padding:10px;
      background:#fff;
    }
input[type=text],input[type=number],select{
      width:100%;
      border:1px solid var(--line-strong);
      border-radius:12px;
      padding:9px 11px;
      background:#fff;
      color:var(--ink);
      font:inherit;
      min-height:40px;
    }
input[type=text]:focus,input[type=number]:focus,select:focus{
      outline:none;
      border-color:var(--signal);
      box-shadow:0 0 0 3px rgba(213,0,50,.12);
    }
input[type=checkbox]{
      width:15px;
      height:15px;
      accent-color:var(--signal);
    }
.form-grid{
      display:grid;
      grid-template-columns:2fr 1fr 1fr 1fr 1fr auto;
      gap:7px;
      align-items:end;
      margin:8px 0;
    }
.fixed-professional-adder{
      grid-template-columns:minmax(260px,520px) auto;
      justify-content:start;
      align-items:end;
      margin:6px 0 10px;
    }
.fixed-professional-adder .primary{white-space:nowrap}
.project-parameters-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.reference-work-heading{margin-top:14px}
.reference-work-table{min-width:1120px}
.reference-work-table th:first-child,.reference-work-table td:first-child{width:64px;text-align:center}
.reference-work-table td input[type="text"]{min-width:160px}
.reference-work-table td input[type="number"]{width:88px;min-width:72px}
    @media(max-width:1200px){
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
    @media(max-width:720px){
.fixed-professional-adder{grid-template-columns:1fr}}
.field label{
      display:block;
      color:var(--muted);
      font-size:10px;
      font-weight:800;
      letter-spacing:.06em;
      text-transform:uppercase;
      margin:0 0 3px;
    }
.field small{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.table-actions{display:flex;gap:8px;align-items:center}
.small-button{
      padding:7px 10px;
      border-radius:10px;
      font-size:11px;
      min-height:32px;
    }
.danger{
      border-color:rgba(213,0,50,.38);
      color:var(--signal);
      background:#fff;
    }
table{width:100%;border-collapse:collapse;font-size:12px}
th,td{border-bottom:1px solid var(--line);padding:9px 10px;text-align:left}
th{
      background:var(--surface);
      font-family:var(--font-display);
      font-size:10px;
      letter-spacing:.08em;
      text-transform:uppercase;
      font-weight:900;
    }
tbody tr:nth-child(even){background:#FCFDFE}
tbody tr:hover{background:rgba(213,0,50,.035)}
td button,td .button{white-space:nowrap}
.table-scroll{
      width:100%;
      overflow:auto;
      border:1px solid var(--line);
      border-radius:14px;
      background:#fff;
      margin-top:8px;
    }
.table-scroll table{min-width:920px}
.table-scroll th:first-child,.table-scroll td:first-child{min-width:150px}
.month-head{
      writing-mode:vertical-rl;
      transform:rotate(180deg);
      text-align:center;
      min-width:28px;
      width:28px;
      padding:6px 4px;
      white-space:nowrap;
    }
.month-cell{
      text-align:center;
      min-width:28px;
      width:28px;
      font-weight:800;
    }
.month-input{
      width:38px!important;
      min-width:38px;
      min-height:24px!important;
      height:24px;
      padding:3px 4px!important;
      text-align:center;
      border-radius:8px!important;
      font-weight:800;
    }
.month-cell.has-value{background:rgba(213,0,50,.07);color:var(--ink)}
.chart-grid{display:grid;grid-template-columns:1fr;gap:12px;margin:14px 0}
.chart-card{
      border:1px solid var(--line);
      border-radius:14px;
      background:#fff;
      padding:12px;
      overflow:hidden;
    }
.chart-card h3{margin:0 0 3px;font-size:15px;line-height:1.25}
.chart-card p{margin:0 0 9px;color:var(--muted);font-size:12px;line-height:1.35}
.chart-scroll{width:100%;overflow-x:auto;overflow-y:hidden;padding-bottom:4px}
.monthly-chart{display:block;max-width:none}
.chart-grid-line{stroke:#DCE1E4;stroke-width:1}
.chart-axis-label{fill:#5F666A;font-size:11px;font-weight:800}
.chart-value-label{fill:#101820;font-size:11px;font-weight:900;paint-order:stroke;stroke:#fff;stroke-width:2.5px;stroke-linejoin:round}
.chart-legend{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 6px}
.chart-legend-item{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:800;color:#354047}
.chart-legend-swatch{width:10px;height:10px;border-radius:2px;display:inline-block}
.chart-grid.two-columns{grid-template-columns:1fr}
    @media(max-width:760px){
.chart-scroll{overflow-x:auto;overflow-y:hidden}
.monthly-chart{width:900px;min-width:900px;height:250px}
    }
.capacity-table th,.capacity-table td{vertical-align:middle}
.capacity-prof{
      background:#F8FAFC;
      border-left:3px solid var(--signal);
      min-width:180px;
    }
.capacity-action{width:160px;color:#2E3438;font-weight:800}
.capacity-input{
      width:58px!important;
      min-width:58px;
      min-height:26px!important;
      height:26px;
      text-align:center;
      font-weight:800;
      border-radius:8px!important;
    }
.pill{
      display:inline-flex;
      align-items:center;
      border:1px solid var(--line-strong);
      border-radius:999px;
      padding:2px 7px;
      font-size:10px;
      font-weight:800;
      background:#fff;
      color:var(--ink);
      margin:2px;
    }
.muted{color:var(--muted);font-size:10.5px}
.empty{
      border:1px dashed var(--line);
      border-radius:10px;
      padding:10px;
      color:var(--muted);
      background:#fff;
      margin-top:8px;
    }
.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.security-rule-grid{
      display:grid;
      grid-template-columns:repeat(4,minmax(0,1fr));
      gap:8px;
      margin:9px 0;
    }
.security-controls{
      display:grid;
      grid-template-columns:2fr .6fr .75fr 1.2fr 1.6fr 1.6fr .65fr .65fr .65fr auto;
      gap:6px;
      align-items:center;
    }
.security-controls th,.security-controls td{padding:5px}
.security-controls input,.security-controls select{min-height:28px;padding:5px 7px}
.section-heading-row,.equipment-card-title{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      margin:14px 0 8px;
    }
.section-heading-row h3{margin:0}
.equipment-cards{display:grid;gap:10px}
.equipment-card{
      border:1px solid var(--line);
      border-radius:16px;
      padding:16px;
      background:#fff;
      box-shadow:0 8px 24px rgba(15,23,42,.04);
    }
.equipment-card-title{margin:0 0 8px}
.equipment-form-grid{grid-template-columns:1.4fr .65fr 1.25fr 1.25fr .55fr .55fr}
.equipment-assignment-add{
      display:grid;
      grid-template-columns:minmax(240px,1fr) 90px auto;
      gap:7px;
      align-items:end;
      margin:8px 0;
    }
    @media(max-width:1200px){
.equipment-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    }
    @media(max-width:760px){
.equipment-assignment-add{grid-template-columns:1fr}
    }
    @media(max-width:1200px){
.security-rule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
    @media(max-width:1100px){
.split{grid-template-columns:1fr}}
.status-ok{color:var(--ok);font-weight:900}
.status-warn{color:var(--warn);font-weight:900}
.hidden{display:none!important}
pre{
      white-space:pre-wrap;
      background:#0b1118;
      color:#f8fafc;
      border-radius:10px;
      padding:10px;
      max-height:260px;
      overflow:auto;
    }
    @media(max-width:900px){
body{overflow:auto}
.grid{grid-template-columns:1fr}
    }
