
  :root{
    --bg:#101216; --bg2:#15181e; --panel:#191d24; --panel2:#1f242c;
    --line:#2a2f38; --line2:#353c47;
    --ink:#e9edf2; --ink2:#9aa4b2; --ink3:#69727f;
    --amber:#ffb627; --amber-dim:#3a2f12;
    --red:#ff5a52; --red-dim:#3a1714;
    --blue:#54a0ff; --green:#4cd07d;
    --shadow:0 14px 40px -18px rgba(0,0,0,.8);
    --radius:14px; font-synthesis:none;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html,body{height:100%}
  body{
    background:
      radial-gradient(900px 500px at 12% -8%, #1a1f27 0%, transparent 60%),
      radial-gradient(700px 460px at 105% 0%, #1c1814 0%, transparent 55%),
      var(--bg);
    color:var(--ink);font-family:'IBM Plex Sans',system-ui,sans-serif;
    -webkit-font-smoothing:antialiased;overflow-x:hidden;
  }
  .mono{font-family:'IBM Plex Mono',monospace}
  .grain{position:fixed;inset:0;pointer-events:none;opacity:.035;z-index:1;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

  header{position:sticky;top:0;z-index:20;backdrop-filter:blur(14px);
    background:linear-gradient(180deg, rgba(16,18,22,.92), rgba(16,18,22,.72));
    border-bottom:1px solid var(--line);padding:16px 26px 14px;}
  .brandrow{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
  .glyph{width:38px;height:38px;border-radius:10px;flex:0 0 auto;
    background:linear-gradient(135deg,var(--amber),#ff8a00);display:grid;place-items:center;
    color:#1a1205;font-family:'Archivo';font-weight:900;font-size:20px;
    box-shadow:0 6px 18px -6px rgba(255,182,39,.6);}
  .title{min-width:200px}
  .title h1{font-family:'Archivo';font-weight:900;font-size:21px;letter-spacing:-.5px;line-height:1;
    outline:none;border-radius:5px;padding:2px 4px;margin:-2px -4px;transition:background .15s}
  .title h1:hover,.title h1:focus{background:var(--panel2)}
  .title .sub{color:var(--ink3);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;
    margin-top:5px;font-weight:600;outline:none;border-radius:5px;padding:1px 4px;transition:background .15s}
  .title .sub:hover,.title .sub:focus{background:var(--panel2)}
  .spacer{flex:1}
  .ghostbtn{font-family:'Archivo';font-weight:700;font-size:12.5px;background:var(--panel);
    color:var(--ink2);border:1px solid var(--line);border-radius:10px;padding:10px 14px;cursor:pointer;transition:.14s}
  .ghostbtn:hover{color:var(--ink);border-color:var(--line2)}
  .ghostbtn.primary2{color:var(--amber);border-color:#4a3a14;background:var(--amber-dim)}
  .ghostbtn.primary2:hover{color:#1a1205;background:var(--amber);border-color:var(--amber)}
  .toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);z-index:90;
    background:var(--panel2);border:1px solid var(--line2);color:var(--ink);border-radius:12px;
    padding:13px 18px;font-size:13px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.25s;max-width:90vw}
  .toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
  .toast b{font-family:Archivo}
  .addbtn{font-family:'Archivo';font-weight:800;font-size:13px;
    background:linear-gradient(135deg,var(--amber),#ff9d12);color:#1a1205;border:0;border-radius:10px;
    padding:11px 18px;cursor:pointer;box-shadow:0 8px 22px -10px rgba(255,182,39,.8);transition:transform .12s, filter .12s;}
  .addbtn:hover{transform:translateY(-1px);filter:brightness(1.06)}

  .controls{display:flex;align-items:center;gap:10px;margin-top:16px;flex-wrap:wrap}
  .seg{display:flex;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:4px;gap:2px}
  .seg button{border:0;background:transparent;color:var(--ink2);cursor:pointer;font-family:'Archivo';
    font-weight:700;font-size:12.5px;padding:8px 15px;border-radius:8px;transition:.15s;display:flex;align-items:center;gap:7px}
  .seg button.on{background:var(--panel2);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line2)}
  .seg button.on.cockpit{color:var(--amber)}
  .pill-count{font-size:10px;background:var(--bg);border:1px solid var(--line);border-radius:20px;padding:1px 7px;color:var(--ink2);min-width:20px;text-align:center}
  select.hodfilter{appearance:none;background:var(--panel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%239aa4b2'%3E%3Cpath d='M2 4l4 4 4-4'/%3E%3C/svg%3E") no-repeat right 12px center;
    border:1px solid var(--line);color:var(--ink);border-radius:11px;padding:9px 34px 9px 14px;font-family:'IBM Plex Sans';font-size:13px;font-weight:500;cursor:pointer}
  .statbar{margin-left:auto;display:flex;gap:7px;flex-wrap:wrap}
  .stat{display:flex;align-items:center;gap:7px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:7px 12px;font-size:12px;color:var(--ink2)}
  .stat b{font-family:'Archivo';font-weight:800;color:var(--ink);font-size:14px}
  .dot{width:8px;height:8px;border-radius:50%}

  main{position:relative;z-index:2;padding:22px 26px 80px}
  .board{display:flex;gap:16px;overflow-x:auto;padding-bottom:10px}
  .lane{flex:0 0 296px;display:flex;flex-direction:column;gap:11px}
  .lanehead{display:flex;align-items:center;gap:9px;padding:2px 4px 4px}
  .lanehead .lname{font-family:'Archivo';font-weight:800;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase}
  .lanehead .lcount{font-family:'IBM Plex Mono';font-size:11px;color:var(--ink3);margin-left:auto}
  .lanebar{height:3px;border-radius:3px;width:100%;margin-bottom:8px}
  .lanebody{display:flex;flex-direction:column;gap:11px;min-height:40px}

  .card{background:linear-gradient(180deg,var(--panel),var(--bg2));border:1px solid var(--line);
    border-left-width:3px;border-radius:var(--radius);padding:13px 14px 12px;cursor:pointer;position:relative;
    transition:transform .12s, border-color .15s, box-shadow .15s;animation:rise .4s ease both;}
  @keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  .card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--line2)}
  .card .ttl{font-weight:600;font-size:13.5px;line-height:1.35;letter-spacing:-.1px;margin-bottom:10px}
  .card .meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:9px}
  .tag{font-family:'IBM Plex Mono';font-size:9.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
    padding:2px 7px;border-radius:5px;border:1px solid;}
  .ra{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:8px}
  .role{display:flex;flex-direction:column;gap:3px}
  .role .lab{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);font-weight:700}
  .person{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500}
  .ava{width:19px;height:19px;border-radius:6px;display:grid;place-items:center;font-family:'Archivo';font-weight:800;font-size:9.5px;color:#10120f}
  .rgrp{display:flex;gap:5px;flex-wrap:wrap}
  .actionpt{display:flex;gap:6px;align-items:flex-start;font-size:11.5px;color:var(--ink2);margin-top:8px;
    background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:7px 9px;line-height:1.4}
  .actionpt.warn{color:var(--amber);background:var(--amber-dim);border-color:#4a3a14}
  .actionpt.block{color:var(--red);background:var(--red-dim);border-color:#52211d}
  .actionpt .ico{flex:0 0 auto;opacity:.8}
  .dueline{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px;padding-top:9px;border-top:1px dashed var(--line)}
  .due{font-family:'IBM Plex Mono';font-size:11px;color:var(--ink2);display:flex;align-items:center;gap:6px}
  .due.overdue{color:var(--red)} .due.soon{color:var(--amber)}
  .empty{color:var(--ink3);font-size:12px;text-align:center;padding:22px 8px;border:1px dashed var(--line);border-radius:12px}

  .cockpit{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:18px;max-width:1280px}
  .cpanel{background:linear-gradient(180deg,var(--panel),var(--bg2));border:1px solid var(--line);border-radius:18px;overflow:hidden}
  .cphead{padding:16px 18px 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:11px}
  .cphead .cpicon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:17px}
  .cphead .cpt{font-family:'Archivo';font-weight:800;font-size:14.5px}
  .cphead .cpd{font-size:11px;color:var(--ink3);margin-top:2px}
  .cphead .cpn{margin-left:auto;font-family:'Archivo';font-weight:900;font-size:26px}
  .cprow{padding:13px 18px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .14s}
  .cprow:last-child{border-bottom:0}.cprow:hover{background:var(--panel2)}
  .cprow .crt{font-weight:600;font-size:13px;line-height:1.35;margin-bottom:7px}
  .cprow .crmeta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;color:var(--ink2)}
  .act{display:inline-flex;align-items:center;gap:5px;font-family:'IBM Plex Mono';font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:6px}
  .act.dir{background:var(--amber-dim);color:var(--amber);border:1px solid #4a3a14}
  .act.block{background:var(--red-dim);color:var(--red);border:1px solid #52211d}
  .cpempty{padding:34px 18px;text-align:center;color:var(--ink3);font-size:12.5px}

  .scrim{position:fixed;inset:0;background:rgba(8,9,12,.7);backdrop-filter:blur(4px);z-index:50;
    display:none;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto}
  .scrim.show{display:flex;animation:fade .2s ease}
  @keyframes fade{from{opacity:0}to{opacity:1}}
  .modal{width:560px;max-width:100%;background:var(--bg2);border:1px solid var(--line2);border-radius:20px;
    box-shadow:0 30px 80px -20px rgba(0,0,0,.9);animation:pop .24s cubic-bezier(.2,.9,.3,1.2) both}
  .modal.wide{width:640px}
  @keyframes pop{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
  .mhead{display:flex;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}
  .mhead h2{font-family:'Archivo';font-weight:800;font-size:16px}
  .mhead .x{margin-left:auto;background:var(--panel);border:1px solid var(--line);color:var(--ink2);width:30px;height:30px;border-radius:8px;cursor:pointer;font-size:16px}
  .mhead .x:hover{color:var(--ink)}
  .mbody{padding:18px 20px;display:flex;flex-direction:column;gap:15px}
  .field label{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);font-weight:700;margin-bottom:6px}
  .field input,.field select,.field textarea{width:100%;background:var(--panel);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:11px 12px;font-family:'IBM Plex Sans';font-size:13.5px}
  .field textarea{resize:vertical;min-height:60px}
  .field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--amber)}
  .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .chips{display:flex;flex-wrap:wrap;gap:6px}
  .chip{font-size:11.5px;padding:6px 11px;border-radius:20px;border:1px solid var(--line);background:var(--panel);color:var(--ink2);cursor:pointer;transition:.13s;user-select:none}
  .chip.on{background:var(--amber);color:#1a1205;border-color:var(--amber);font-weight:600}
  .mfoot{padding:16px 20px;border-top:1px solid var(--line);display:flex;gap:10px;align-items:center}
  .save{margin-left:auto;font-family:'Archivo';font-weight:800;font-size:13.5px;background:linear-gradient(135deg,var(--amber),#ff9d12);color:#1a1205;border:0;border-radius:10px;padding:11px 22px;cursor:pointer}
  .save:hover{filter:brightness(1.06)}
  .ghost{background:var(--panel);border:1px solid var(--line);color:var(--ink2);border-radius:10px;padding:11px 16px;cursor:pointer;font-size:13px;font-weight:600}
  .ghost.danger:hover{color:var(--red);border-color:#52211d}

  .tabs{display:flex;gap:4px;padding:14px 20px 0}
  .tab{background:transparent;border:0;color:var(--ink3);font-family:'Archivo';font-weight:700;font-size:13px;padding:9px 14px;border-radius:9px 9px 0 0;cursor:pointer;border-bottom:2px solid transparent}
  .tab.on{color:var(--ink);border-bottom-color:var(--amber)}
  .srows{display:flex;flex-direction:column;gap:8px}
  .srow{display:flex;align-items:center;gap:8px}
  .srow input[type=color]{width:38px;height:36px;padding:2px;border:1px solid var(--line);border-radius:9px;background:var(--panel);cursor:pointer;flex:0 0 auto}
  .srow .nin{flex:1.2} .srow .rin{flex:1.4}
  .srow input[type=text]{background:var(--panel);border:1px solid var(--line);color:var(--ink);border-radius:9px;padding:9px 11px;font-size:13px;min-width:0}
  .srow .kin{background:var(--panel);border:1px solid var(--line);color:var(--ink);border-radius:9px;padding:9px;font-size:12.5px;flex:0 0 150px}
  .srow .delx,.srow .mvx{background:var(--panel);border:1px solid var(--line);color:var(--ink3);width:32px;height:34px;border-radius:8px;cursor:pointer;flex:0 0 auto;font-size:13px}
  .srow .delx:hover{color:var(--red);border-color:#52211d}
  .srow .mvx:hover{color:var(--ink)}
  .addrow{margin-top:12px;background:var(--panel);border:1px dashed var(--line2);color:var(--ink2);border-radius:10px;padding:10px;width:100%;cursor:pointer;font-size:13px;font-weight:600}
  .addrow:hover{color:var(--ink);border-color:var(--amber)}
  .hint{font-size:11.5px;color:var(--ink3);line-height:1.5;margin-top:12px}
  ::-webkit-scrollbar{height:10px;width:10px}
  ::-webkit-scrollbar-thumb{background:var(--line2);border-radius:10px}
  ::-webkit-scrollbar-track{background:transparent}
  @media(max-width:600px){.statbar{width:100%;margin-left:0}.lane{flex-basis:82vw}.srow .rin{display:none}}


/* ---- server/status additions ---- */
.connpill{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--ink2);background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:7px 12px;white-space:nowrap}
.connpill.live{color:var(--green);border-color:#143a25;background:#0f2418}
.ghostbtn.primary2{color:var(--amber);border-color:#4a3a14;background:var(--amber-dim)}
.ghostbtn.primary2:hover{color:#1a1205;background:var(--amber);border-color:var(--amber)}
body.viewmode .card{cursor:default}
body.viewmode .title h1,body.viewmode .title .sub{cursor:default}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);z-index:90;background:var(--panel2);border:1px solid var(--line2);color:var(--ink);border-radius:12px;padding:13px 18px;font-size:13px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.25s;max-width:90vw}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast b{font-family:Archivo}
