:root{--bg:#090b0a;--panel:#111512;--panel2:#171c18;--line:#2a342d;--text:#e5e9df;--muted:#8d978c;--green:#9ecb46;--red:#db4d45;--amber:#e7ac42}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:"IBM Plex Mono",monospace;font-size:13px}.scanlines{position:fixed;inset:0;z-index:10;opacity:.035;pointer-events:none;background:repeating-linear-gradient(0deg,#fff 0 1px,transparent 1px 4px)}.app-shell{min-height:100vh;display:grid;grid-template-columns:264px 1fr}.sidebar{background:#0d100e;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:25px 15px}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 34px}.brand strong,h1,h2,h3{font-family:Rajdhani,sans-serif;letter-spacing:.04em}.brand strong{font-size:17px;display:block}.brand span{display:block;color:var(--muted);font-size:9px;margin-top:3px}.scp-mark{border:2px solid var(--text);border-radius:50%;width:42px;height:42px;display:grid;place-items:center;font-family:Rajdhani;font-weight:700;font-size:13px}.nav-item{border:0;border-left:2px solid transparent;background:transparent;color:#aeb5aa;text-align:left;padding:13px 9px;font:500 12px "IBM Plex Mono";width:100%;cursor:pointer}.nav-item span{color:#5d665d;font-size:9px;margin-right:8px}.nav-item:hover,.nav-item.active{color:var(--green);background:#151b15;border-left-color:var(--green)}.sidebar-bottom{margin-top:auto;padding:15px 8px}.connection{font-size:10px;color:var(--green);margin-bottom:18px}.connection i,.online{display:inline-block;width:6px;height:6px;background:var(--green);border-radius:50%;margin-right:5px;box-shadow:0 0 8px var(--green)}.text-button{border:0;background:transparent;color:#a0aa9e;font:500 10px "IBM Plex Mono";cursor:pointer;padding:5px 0}.text-button:hover{color:var(--green)}main{min-width:0}header{height:74px;padding:0 38px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.breadcrumb{font-size:10px;color:var(--muted)}.breadcrumb b{color:var(--green)}.user-chip{display:flex;align-items:center;gap:10px}.user-chip>span{font-size:9px;border:1px solid #52664a;color:var(--green);padding:3px 5px}.user-chip b{font-size:11px;display:block}.user-chip small{font-size:9px;color:var(--muted)}.avatar{width:29px;height:29px;border-radius:50%;background:#3e512e;color:#e8efdc;display:grid;place-items:center;font-weight:bold}.menu-toggle{display:none}.view{display:none;padding:38px;max-width:1400px}.view.active{display:block}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:27px}.eyebrow{font-size:10px;color:var(--green);text-transform:uppercase;letter-spacing:.13em;margin:0 0 7px}h1{font-size:34px;margin:0 0 8px;line-height:1}h2{margin:0}h3{margin:0;font-size:20px}p{color:var(--muted);line-height:1.55}.page-heading>div>p:last-child{font-size:11px;margin:0}.status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}.status-grid article,.panel,.scp-card,.units-grid article,.operations-list article{border:1px solid var(--line);background:var(--panel)}.status-grid article{padding:19px}.status-grid p{font-size:10px;margin:0 0 12px;text-transform:uppercase}.status-grid h2{font-size:25px}.status-grid small{font-size:10px;color:var(--muted)}.safe{color:var(--green)}.amber-text{color:var(--amber)}.two-column,.comms-layout,.admin-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:14px}.panel{padding:22px}.panel-title{display:flex;justify-content:space-between;align-items:start;border-bottom:1px solid var(--line);padding-bottom:14px}.timeline>div{position:relative;padding:17px 80px 17px 22px;border-bottom:1px solid #202720}.timeline b,.timeline span{display:block;font-size:11px}.timeline span{font-size:10px;color:var(--muted);margin-top:5px}.timeline time{position:absolute;right:0;top:18px;color:var(--muted);font-size:10px}.dot{position:absolute;left:0;top:20px;width:8px;height:8px;border:1px solid #6f786d;border-radius:50%}.dot.green{background:var(--green);border-color:var(--green)}.dot.amber{background:var(--amber);border-color:var(--amber)}.protocol{border-top:2px solid var(--green);background:linear-gradient(120deg,#151b14,#101310)}.protocol h3{font-size:24px;line-height:1.05}.protocol span{font-size:10px;color:var(--green)}button{transition:.15s}.solid,.outline,.alarm-button{font:600 10px "IBM Plex Mono";letter-spacing:.04em;cursor:pointer;padding:11px 14px}.solid{background:var(--green);border:1px solid var(--green);color:#10150e}.outline{background:transparent;color:var(--text);border:1px solid var(--line);margin-top:20px}.outline:hover{border-color:var(--green);color:var(--green)}.alarm-button{background:#301311;border:1px solid #8f302d;color:#ff9189}.alarm-button:hover{background:#521b17}.search,input,select{border:1px solid var(--line);background:#0b0e0c;color:var(--text);font:12px "IBM Plex Mono";padding:11px 12px;outline:none}.search:focus,input:focus,select:focus{border-color:var(--green)}.archive-grid,.units-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.scp-card{padding:23px;border-top:3px solid var(--green)}.scp-card.red{border-top-color:var(--red)}.scp-card.amber{border-top-color:var(--amber)}.scp-card>span,.tag{font-size:9px;letter-spacing:.1em}.scp-card.red>span{color:var(--red)}.scp-card.amber>span{color:var(--amber)}.scp-card.green>span{color:var(--green)}.scp-card h2{font-size:30px;margin-top:26px}.scp-card p{margin:0;color:var(--text)}.scp-card small{color:var(--muted);font-size:10px}.operations-list{display:grid;gap:8px}.operations-list article{padding:19px;display:grid;grid-template-columns:130px 1fr 100px 150px;align-items:center;gap:18px}.operation-code{color:var(--green);font-size:10px}.operations-list h3{font-size:18px}.operations-list p{font-size:10px;margin:3px 0 0}.tag{padding:4px 6px;width:max-content}.active-tag{color:var(--green);border:1px solid #425531}.plan-tag{color:var(--amber);border:1px solid #6e542a}.done-tag{color:var(--muted);border:1px solid #3e473e}.operations-list>b{font-size:10px}.units-grid article{padding:22px}.unit-badge{border:1px solid var(--green);color:var(--green);width:48px;height:48px;display:grid;place-items:center;font:700 18px Rajdhani}.units-grid h2{margin:19px 0 0;font-size:22px}.units-grid p{color:var(--green);font-size:11px;margin:3px 0}.units-grid small{color:var(--muted);display:block;min-height:34px}.units-grid footer{padding-top:15px;margin-top:16px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:10px}.messenger{padding-bottom:0}.messages{height:290px;overflow:auto;padding:10px 0}.message{max-width:75%;margin:12px 0;padding:10px 12px;background:#1a211b;border-left:2px solid #65745b}.message.self{margin-left:auto;background:#1c2817;border-left:0;border-right:2px solid var(--green)}.message b{font-size:10px;color:var(--green)}.message p{margin:4px 0;color:var(--text);font-size:11px}.message small{color:var(--muted);font-size:9px}#message-form{display:flex;margin:0 -22px}#message-form input{border-width:1px 0 0;width:100%}#message-form button{background:var(--green);border:0;width:50px;cursor:pointer}.radio{text-align:center;background:radial-gradient(circle at center,#1d2918 0,#111511 65%)}.radio h2{font-size:27px}.radio-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.radio-live{font-size:9px;color:var(--green);white-space:nowrap}.radio-select-label{display:block;text-align:left;color:var(--muted);font-size:9px;margin:15px 0 6px}.radio-select{width:100%;cursor:pointer}.wave{height:95px;display:flex;justify-content:center;align-items:center;gap:6px}.wave i{height:4px;width:4px;background:var(--green);opacity:.32;border-radius:2px;transition:height .06s linear,opacity .06s linear}.radio.transmitting .wave i{opacity:.9}.radio.transmitting .ptt{background:var(--green);color:#172211;box-shadow:0 0 28px #78b33266}.radio-footer{align-items:center}.radio-help{color:var(--muted);font-size:9px}.ptt:disabled{opacity:.45;cursor:not-allowed}.ptt{border-radius:50%;width:122px;height:122px;border:1px solid #6d9940;background:#1b2b15;color:var(--green);cursor:pointer;font-size:38px}.ptt span{display:block;font:600 8px "IBM Plex Mono";margin-top:7px}.ptt:active,.radio.transmitting .ptt{background:var(--green);color:#172211;box-shadow:0 0 28px #78b33266}.radio-footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:22px;padding-top:14px;font-size:10px}.table-wrap{padding:0;overflow:auto}table{border-collapse:collapse;width:100%;min-width:700px}th,td{text-align:left;padding:15px 19px;border-bottom:1px solid var(--line);font-size:11px}th{font-size:9px;color:var(--muted);font-weight:400}.rank{color:var(--green)}.stack-form{display:grid;gap:10px;margin-top:18px}.policy{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);font-size:11px}.enabled{font-size:9px;color:var(--green)}.warning{font-size:10px;border-left:2px solid var(--amber);padding-left:10px;margin-top:20px}.modal{display:none;position:fixed;inset:0;z-index:20;background:#000b;align-items:center;justify-content:center}.modal.show{display:flex}.modal-box{background:#121713;border:1px solid #45543d;padding:28px;width:min(460px,92vw);position:relative}.modal-box h2{font-size:27px}.close{position:absolute;right:15px;top:10px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer}.alarm-options{display:grid;gap:8px;margin-top:18px}.alarm-options button{background:#1e211d;border:1px solid var(--line);color:var(--text);padding:12px;text-align:left;font:600 11px "IBM Plex Mono";cursor:pointer}.alarm-options button:hover{border-color:var(--red);color:#ff8178}.alarm-options small{display:block;color:var(--muted);margin-top:3px;font-weight:400}#toast{position:fixed;bottom:25px;right:25px;z-index:30;background:#26351f;color:#eff9e7;border:1px solid var(--green);padding:12px 16px;font-size:11px;transform:translateY(100px);opacity:0;transition:.2s}#toast.show{transform:translateY(0);opacity:1}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{display:none;position:fixed;z-index:15;inset:0 20% 0 0}.sidebar.open{display:flex}.menu-toggle{display:block;background:transparent;border:0;color:var(--text);font-size:20px}header{padding:0 20px}.breadcrumb{display:none}.view{padding:25px 20px}.status-grid{grid-template-columns:repeat(2,1fr)}.archive-grid,.units-grid{grid-template-columns:1fr}.two-column,.comms-layout,.admin-grid{grid-template-columns:1fr}.operations-list article{grid-template-columns:1fr;gap:6px}.operations-list article>b{margin-top:5px}.user-chip>span{display:none}}@media(max-width:520px){.status-grid{grid-template-columns:1fr}.page-heading{align-items:start;gap:15px;flex-direction:column}h1{font-size:29px}.alarm-button{width:100%}}
/* Effet radio : l'onde s'anime uniquement pendant l'émission */
.radio.transmitting .radio-live{color:var(--red)}
.radio.transmitting .radio-live .online{background:var(--red);box-shadow:0 0 8px var(--red)}
.radio.transmitting .wave i{border-color:var(--green)}


/* Per-user alarm audio mute */
.alarm-mute-btn{
  border:1px solid rgba(255,255,255,.16);
  background:rgba(12,16,22,.88);
  color:#e8edf2;
  padding:8px 12px;
  border-radius:8px;
  font:600 11px/1.1 system-ui, sans-serif;
  letter-spacing:.04em;
  cursor:pointer;
  transition:background .15s ease, border-color .15s ease, transform .08s ease;
  margin-left:10px;
  vertical-align:middle;
}
.alarm-mute-btn:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.28)}
.alarm-mute-btn:active{transform:translateY(1px)}
.alarm-mute-btn.is-muted{
  color:#ffb4b4;
  border-color:rgba(255,70,70,.4);
  background:rgba(70,10,10,.45);
}


/* Distinct alarm presentation */
body.alarm-yellow #alert-level{
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
body.alarm-yellow #alert-copy::before{
  content:'⚠ ';
}
body.alarm-orange #alert-level{
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
body.alarm-orange #alert-copy::before{
  content:'⚠⚠ ';
}

/* Mute control in the top-right header, left of accreditation */
header .alarm-mute-btn{margin:0 12px 0 auto;flex:0 0 auto}
@media(max-width:900px){header .alarm-mute-btn{margin-left:auto;margin-right:8px}}
@media(max-width:520px){header .alarm-mute-btn{padding:7px 9px;font-size:10px;max-width:145px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}

/* Alarm interface colors */
#alert-card{transition:background .2s,border-color .2s,box-shadow .2s}
body.alarm-yellow #alert-card{background:linear-gradient(135deg,rgba(84,72,18,.72),rgba(31,29,13,.92));border-color:rgba(235,193,48,.65);box-shadow:inset 3px 0 0 #e7c12e,0 0 18px rgba(231,193,46,.08)}
body.alarm-yellow #alert-card #alert-level{color:#f0cb3b;font-weight:900}
body.alarm-orange #alert-card{background:linear-gradient(135deg,rgba(100,49,15,.78),rgba(35,21,12,.94));border-color:rgba(240,130,45,.72);box-shadow:inset 3px 0 0 #ef7f28,0 0 20px rgba(239,127,40,.10)}
body.alarm-orange #alert-card #alert-level{color:#f28a3b;font-weight:900}
body[data-protocol="ROUGE"] #alert-card{background:linear-gradient(135deg,rgba(83,22,20,.82),rgba(31,13,13,.95));border-color:rgba(226,63,55,.78);box-shadow:inset 3px 0 0 #df3f38,0 0 22px rgba(223,63,56,.12)}
body[data-protocol="ROUGE"] #alert-card #alert-level{color:#ff6b63;font-weight:900}
body[data-protocol="OMEGA"] #alert-card{background:linear-gradient(135deg,rgba(73,24,66,.84),rgba(29,13,27,.96));border-color:rgba(210,78,185,.82);box-shadow:inset 3px 0 0 #d04ab8,0 0 24px rgba(208,74,184,.13)}
body[data-protocol="OMEGA"] #alert-card #alert-level{color:#ef72d6;font-weight:900}

/* =========================================================
   SITE-73 — ALARM INTERFACE COLORS
   Yellow / Orange are intentionally visible across the UI.
   ========================================================= */

/* JAUNE — amber/yellow interface */
body.alarm-yellow main{
  background:linear-gradient(180deg,rgba(72,61,8,.20),transparent 45%);
}
body.alarm-yellow header{
  border-bottom-color:rgba(241,199,47,.55);
}
body.alarm-yellow .breadcrumb b,
body.alarm-yellow #view-label{
  color:#f1c72f !important;
}
body.alarm-yellow .status-grid article{
  border-color:rgba(241,199,47,.34);
}
body.alarm-yellow #alert-card{
  background:linear-gradient(135deg,#3a320d,#211f0b) !important;
  border:1px solid #d7b52c !important;
  box-shadow:inset 5px 0 0 #e8c62f,0 0 28px rgba(232,198,47,.20) !important;
}
body.alarm-yellow #alert-card #alert-level{
  color:#ffd83d !important;
  text-shadow:0 0 12px rgba(255,216,61,.25);
}
body.alarm-yellow #alert-card #alert-copy{
  color:#f5df83 !important;
}
body.alarm-yellow .page-heading h1{
  color:#f6d44a;
}

/* ORANGE — orange interface */
body.alarm-orange main{
  background:linear-gradient(180deg,rgba(92,42,7,.22),transparent 45%);
}
body.alarm-orange header{
  border-bottom-color:rgba(244,132,45,.60);
}
body.alarm-orange .breadcrumb b,
body.alarm-orange #view-label{
  color:#f28a3d !important;
}
body.alarm-orange .status-grid article{
  border-color:rgba(244,132,45,.38);
}
body.alarm-orange #alert-card{
  background:linear-gradient(135deg,#43230f,#25170d) !important;
  border:1px solid #df762b !important;
  box-shadow:inset 5px 0 0 #f08332,0 0 30px rgba(240,131,50,.22) !important;
}
body.alarm-orange #alert-card #alert-level{
  color:#ff974c !important;
  text-shadow:0 0 12px rgba(255,151,76,.25);
}
body.alarm-orange #alert-card #alert-copy{
  color:#f5bb83 !important;
}
body.alarm-orange .page-heading h1{
  color:#f49a54;
}

/* Alarm label itself gets a colored badge */
body.alarm-yellow #alert-level,
body.alarm-orange #alert-level{
  display:inline-block;
  padding:5px 9px;
  border-radius:4px;
}

/* Keep RED / OMEGA visually distinct too */
body.alarm-red #alert-card{
  background:linear-gradient(135deg,#431512,#24100f) !important;
  border-color:#d84840 !important;
  box-shadow:inset 5px 0 0 #e34a42,0 0 30px rgba(227,74,66,.20) !important;
}
body.alarm-red #alert-card #alert-level{color:#ff7068 !important}
body.alarm-omega #alert-card{
  background:linear-gradient(135deg,#3e1839,#231126) !important;
  border-color:#c84db0 !important;
  box-shadow:inset 5px 0 0 #d45bbd,0 0 30px rgba(212,91,189,.20) !important;
}
body.alarm-omega #alert-card #alert-level{color:#ed76d5 !important}

/* FINAL JAUNE FALLBACK — supports both class and protocol attribute */
body[data-protocol="JAUNE"] #alert-card,
body.alarm-yellow #alert-card{
  background:linear-gradient(135deg,#51450c 0%,#28230a 100%) !important;
  border:2px solid #f0c52e !important;
  box-shadow:inset 6px 0 0 #ffd21f,0 0 35px rgba(255,210,31,.28) !important;
}
body[data-protocol="JAUNE"] #alert-card #alert-level,
body.alarm-yellow #alert-card #alert-level{
  color:#ffe04a !important;
  font-weight:900 !important;
  text-shadow:0 0 14px rgba(255,224,74,.35) !important;
}
body[data-protocol="JAUNE"] #alert-card #alert-copy,
body.alarm-yellow #alert-card #alert-copy{
  color:#ffeaa0 !important;
}
body[data-protocol="JAUNE"] .breadcrumb b,
body[data-protocol="JAUNE"] #view-label{
  color:#f4ce3c !important;
}
#archive-create-form[hidden],#archive-add-scp[hidden]{display:none!important}
.archive-actions{display:flex;align-items:center;gap:10px}
@media(max-width:650px){.archive-actions{width:100%;flex-wrap:wrap}.archive-actions .search{flex:1;min-width:180px}}
.scp-mark img{width:30px;height:30px;object-fit:contain}
