/* AeroDrive — Frutiger Aero / Windows Vista */
:root{
  --font:"Segoe UI","Frutiger","Frutiger Linotype","Trebuchet MS",Tahoma,"Noto Sans",system-ui,sans-serif;
  --ink:#0d2745; --muted:#5b7390; --line:#a9bdd3; --hl:#cfe8ff; --hl2:#7da2ce;
  --w1:#0c4a86; --w2:#1c8fd0; --w3:#4ec3d8; --w4:#8be0a6;
}
body[data-wall=lagoon]{--w1:#06456b;--w2:#0e9aa7;--w3:#3fd0c0;--w4:#b9f0b0}
body[data-wall=dusk]{--w1:#1b2a6b;--w2:#4a62c9;--w3:#8aa6f0;--w4:#d9c3f5}
body[data-wall=meadow]{--w1:#0f6a8a;--w2:#3fae7a;--w3:#9bdc6a;--w4:#f2f08a}
*{box-sizing:border-box}
html,body{height:100%;margin:0;overflow:hidden}
body{font:13px/1.4 var(--font);color:var(--ink);
  background:
    radial-gradient(circle at 82% 18%,rgba(255,255,255,.55) 0 9%,rgba(255,255,255,.12) 9.4% 10%,transparent 10.4%),
    radial-gradient(circle at 12% 78%,rgba(255,255,255,.4) 0 6%,rgba(255,255,255,.1) 6.4% 7%,transparent 7.4%),
    radial-gradient(circle at 66% 84%,rgba(255,255,255,.35) 0 3.5%,transparent 3.9%),
    radial-gradient(circle at 30% 14%,rgba(255,255,255,.3) 0 2.5%,transparent 2.9%),
    radial-gradient(ellipse at 20% 112%,var(--w4) 0 28%,transparent 62%),
    radial-gradient(ellipse at 90% -10%,rgba(255,255,255,.7),transparent 50%),
    linear-gradient(165deg,var(--w1) 0%,var(--w2) 42%,var(--w3) 74%,var(--w4) 100%);
  background-attachment:fixed}
body::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.55;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900' preserveAspectRatio='xMidYMid slice'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='white' stop-opacity='0'/%3E%3Cstop offset='.5' stop-color='white' stop-opacity='.6'/%3E%3Cstop offset='1' stop-color='white' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M-100 640C300 460 700 860 1200 420S1700 280 1800 360V500C1500 430 1300 690 900 790S300 690-100 790Z' fill='url(%23a)' opacity='.55'/%3E%3Cpath d='M-100 540C250 380 650 720 1100 330S1600 200 1800 260V330C1500 300 1250 560 850 650S250 560-100 640Z' fill='url(%23a)' opacity='.35'/%3E%3C/svg%3E") center/cover no-repeat}
button,input,select,textarea{font:inherit;color:inherit}
[hidden]{display:none!important}
.grow{flex:1}
.muted{color:var(--muted)}
.err{color:#b3261e}

/* ---------- Boutons ---------- */
.btn{padding:4px 16px;min-width:76px;border:1px solid #6f7f93;border-radius:4px;cursor:pointer;color:#0d1b2e;
  background:linear-gradient(#fbfcfd 0 48%,#e3e9f0 50%,#c9d3df);box-shadow:inset 0 0 0 1px rgba(255,255,255,.85)}
.btn:hover{border-color:#3c7fb1;background:linear-gradient(#eef8ff 0 48%,#d4edfc 50%,#9fd6f5);box-shadow:inset 0 0 0 1px #fff,0 0 6px rgba(60,160,230,.75)}
.btn:active{background:linear-gradient(#d8eefb 0 48%,#b9e0f5 50%,#8ccaeb)}
.btn.primary{border-color:#2c628b;background:linear-gradient(#f4fbff 0 48%,#c6e8fb 50%,#7ec8f0);box-shadow:inset 0 0 0 1px #fff,0 0 6px rgba(70,170,240,.7)}
.btn.danger{border-color:#8d2a22;background:linear-gradient(#fff3f1 0 48%,#f6c1b9 50%,#e8877b)}
.btn:disabled,.cb:disabled{opacity:.45;pointer-events:none}
.gbtn{min-width:30px;height:28px;padding:0 9px;border:1px solid rgba(20,50,90,.55);border-radius:14px;cursor:pointer;color:#0d2745;
  background:linear-gradient(#fff 0 46%,#cfe3f7 50%,#a9cdef);box-shadow:inset 0 0 0 1px rgba(255,255,255,.8),0 1px 2px rgba(0,0,0,.25)}
.gbtn:hover{background:linear-gradient(#fff 0 46%,#d9f1ff 50%,#7fd0f7);box-shadow:inset 0 0 0 1px #fff,0 0 8px rgba(80,190,255,.9)}
.gbtn:disabled{opacity:.4;pointer-events:none}
input[type=text],input[type=password],input[type=number],input[type=search],input:not([type]),select,textarea{
  border:1px solid #abadb3;border-top-color:#8e9199;background:#fff;padding:4px 7px;border-radius:3px;outline:none;user-select:text}
input:focus,select:focus,textarea:focus{border-color:#3c9ae0;box-shadow:0 0 0 2px rgba(80,170,240,.35)}

/* ---------- Orbe ---------- */
.orb{display:inline-block;width:26px;height:26px;border-radius:50%;position:relative;flex:none;border:1.5px solid rgba(255,255,255,.85);
  background:radial-gradient(circle at 50% 118%,#6cf0ff 0 22%,transparent 62%),radial-gradient(circle at 50% 40%,#2c8be0,#0a3874);
  box-shadow:0 0 8px #54c8ff,0 0 0 1px #02203f,inset 0 -4px 8px rgba(80,220,255,.9)}
.orb::before{content:"";position:absolute;left:12%;right:12%;top:5%;height:46%;border-radius:50%;background:linear-gradient(rgba(255,255,255,.9),rgba(255,255,255,.05))}
.orb::after{content:"";position:absolute;inset:34% 34%;border-radius:50%;background:#fff;box-shadow:0 0 6px #fff;opacity:.9}
.orb.big{width:84px;height:84px;border-width:3px;box-shadow:0 0 22px #54c8ff,0 0 0 1px #02203f,inset 0 -10px 18px rgba(80,220,255,.9)}

/* ---------- Cadre principal ---------- */
#app{position:fixed;inset:14px;display:flex;flex-direction:column;border-radius:10px;overflow:hidden;
  background:linear-gradient(180deg,rgba(220,238,255,.8),rgba(150,198,240,.55) 55%,rgba(172,212,246,.65));
  backdrop-filter:blur(16px) saturate(1.5);-webkit-backdrop-filter:blur(16px) saturate(1.5);
  border:1px solid rgba(6,28,56,.75);box-shadow:inset 0 0 0 1px rgba(255,255,255,.6),0 14px 50px rgba(0,22,55,.55)}
#app::before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:linear-gradient(118deg,rgba(255,255,255,.4) 0 20%,transparent 20.3% 58%,rgba(255,255,255,.16) 58.3% 72%,transparent 72.3%)}
#top{position:relative;display:flex;align-items:center;gap:10px;height:46px;padding:0 10px;flex:none}
.logo{display:flex;align-items:center;gap:9px;font-size:16px;text-shadow:0 0 9px #fff,0 0 14px #fff;letter-spacing:.2px}
#burger{display:none}
#userchip{padding:0 14px 0 12px}
#frame{position:relative;flex:1;display:flex;min-height:0;gap:8px;padding:0 8px 8px}
#side{width:230px;flex:none;display:flex;flex-direction:column;min-height:0;border-radius:6px;border:1px solid rgba(8,34,66,.55);
  background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(225,238,252,.62));box-shadow:inset 0 0 0 1px rgba(255,255,255,.7)}
#nav{padding:8px 6px 4px;display:flex;flex-direction:column;gap:2px}
.ni{display:flex;align-items:center;gap:8px;padding:5px 8px;border:1px solid transparent;border-radius:4px;cursor:pointer}
.ni:hover{background:linear-gradient(#fafdff,#e3f2fc);border-color:#b8d6fb}
.ni.on{background:linear-gradient(#e9f6ff,#cde8fa 50%,#b6dcf5);border-color:var(--hl2);font-weight:600}
#tree{flex:1;overflow:auto;padding:2px 6px 6px;border-top:1px solid rgba(100,140,180,.35);margin-top:4px}
.tn{display:flex;align-items:center;gap:3px;padding:2px 4px;border:1px solid transparent;border-radius:3px;cursor:pointer;white-space:nowrap}
.tn:hover{background:linear-gradient(#fafdff,#e3f2fc);border-color:#b8d6fb}
.tn.on{background:linear-gradient(#e9f6ff,#cde8fa 50%,#b6dcf5);border-color:var(--hl2)}
.tn.dropt,.it.dropt,.crumb.dropt{background:#bfe3ff!important;border-color:#3c8fd6!important}
.tg{width:14px;text-align:center;font-size:9px;color:#506b8a;flex:none}
.tkids{padding-left:14px}
#gauge{padding:10px;border-top:1px solid rgba(100,140,180,.35);font-size:12px}
.bar{height:12px;border-radius:6px;border:1px solid #6d86a0;background:linear-gradient(#cbd6e2,#eef3f8);overflow:hidden;margin:4px 0}
.bar i{display:block;height:100%;background:linear-gradient(#b9f5b9 0 45%,#2fbf4a 50%,#6fe27d);box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
.bar i.warn{background:linear-gradient(#ffe7a8 0 45%,#f0a21c 50%,#ffc95e)}
.bar i.full{background:linear-gradient(#ffc0b8 0 45%,#d53a2a 50%,#f27a6a)}

#main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}
#tabs{display:flex;gap:3px;padding:0 4px;overflow-x:auto;flex:none;align-items:flex-end;min-height:30px}
.tab{display:flex;align-items:center;gap:6px;max-width:220px;padding:5px 8px 5px 10px;cursor:pointer;white-space:nowrap;
  border:1px solid rgba(8,34,66,.5);border-bottom:none;border-radius:6px 6px 0 0;
  background:linear-gradient(rgba(255,255,255,.75) 0 48%,rgba(190,215,240,.7) 52%,rgba(215,232,248,.7))}
.tab:hover{background:linear-gradient(#fff 0 48%,#d5ecfd 52%,#bfe2fb)}
.tab.on{background:#fff;font-weight:600;position:relative;top:1px}
.tt{overflow:hidden;text-overflow:ellipsis}
.ti{display:flex}
.tx{border:none;background:none;cursor:pointer;font-size:15px;line-height:1;padding:0 3px;border-radius:3px;color:#46607c}
.tx:hover{background:#e8604a;color:#fff}
#views{flex:1;min-height:0;position:relative;background:#fff;border:1px solid rgba(8,34,66,.6);border-radius:0 6px 6px 6px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5);overflow:hidden}
.view{position:absolute;inset:0;display:none;flex-direction:column;min-height:0}
.view.on{display:flex}

/* ---------- Authentification ---------- */
#auth{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:16px}
.authbox,.sharebox{width:390px;max-width:100%;padding:34px 30px 26px;text-align:center;border-radius:12px;position:relative;
  background:linear-gradient(180deg,rgba(235,246,255,.88),rgba(170,208,245,.68));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(6,28,56,.75);box-shadow:inset 0 0 0 1px rgba(255,255,255,.65),0 14px 50px rgba(0,22,55,.55)}
.authbox .orb,.sharebox .orb{margin:-76px auto 10px}
.authbox h1,.sharebox h1{margin:6px 0 4px;font-size:22px;font-weight:600;text-shadow:0 0 10px #fff;word-break:break-word}
.authbox p{margin:0 0 16px;color:#3a5877}
.authbox form,.sharebox form{display:flex;flex-direction:column;gap:10px;text-align:left}
.authbox input,.sharebox input{padding:8px 10px;font-size:14px}
.authbox .btn,.sharebox .btn{padding:8px;font-size:14px;margin-top:4px}
.sharepage{display:flex;align-items:center;justify-content:center;padding:16px}
.sharebox{margin-top:60px}
.sharebox form{margin-top:16px}

/* ---------- Menus, dialogues, notifications ---------- */
#layer{position:fixed;inset:0;pointer-events:none;z-index:9000}
#layer>*{pointer-events:auto}
.menu{position:fixed;z-index:9500;min-width:200px;padding:3px;border:1px solid #8d97a3;border-radius:4px;
  background:linear-gradient(90deg,#eef2f7 0 28px,#fdfdfe 28px);box-shadow:3px 4px 10px rgba(0,20,50,.4)}
.mi{position:relative;display:flex;align-items:center;gap:6px;padding:4px 8px 4px 4px;border:1px solid transparent;border-radius:3px;cursor:pointer;white-space:nowrap}
.mi:hover{background:linear-gradient(#f6fbff,#d8ecfb 50%,#c4e1f7);border-color:#8fb7e0}
.mi.dis{opacity:.45;pointer-events:none}
.mic{width:20px;text-align:center}
.ml{flex:1}
.mk{color:#6a7d92;font-size:11px;padding-left:18px}
.msep{height:1px;margin:3px 2px 3px 30px;background:#d3dae3}
.menu .sub{display:none;position:absolute;left:100%;top:-4px}
.mi:hover>.sub{display:block}
.mi .sub.flip{left:auto;right:100%}
.modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,24,56,.3);z-index:9400;padding:12px}
.dlg{max-width:100%;max-height:100%;display:flex;flex-direction:column;border-radius:9px;padding:0 7px 7px;
  background:linear-gradient(rgba(215,235,255,.9),rgba(150,198,240,.75));backdrop-filter:blur(14px);
  border:1px solid rgba(8,30,60,.75);box-shadow:inset 0 0 0 1px rgba(255,255,255,.55),0 12px 40px rgba(0,20,50,.55)}
.dlg .dt{height:30px;display:flex;align-items:center;padding:0 4px;text-shadow:0 0 8px #fff,0 0 12px #fff}
.dlg .dw{background:#fff;border:1px solid rgba(0,30,60,.55);display:flex;flex-direction:column;min-height:0}
.dbody{padding:16px 18px;overflow:auto;display:flex;flex-direction:column;gap:8px}
.dbody label{font-size:12px;color:#355574}
.dbody .row{display:flex;gap:8px;align-items:center}
.dbody .row>*{flex:1}
.dmsg{margin:0;white-space:pre-wrap;word-break:break-word}
.dfoot{display:flex;justify-content:flex-end;gap:8px;padding:10px 12px;background:linear-gradient(#f4f6f9,#e3e8ee);border-top:1px solid #c9d2dc}
.kv{display:grid;grid-template-columns:110px 1fr;gap:4px 10px}
.kv dt{color:#5b7390}.kv dd{margin:0;word-break:break-all}
.toast{position:fixed;right:22px;bottom:22px;z-index:9600;max-width:340px;padding:10px 14px;border-radius:8px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5);
  background:linear-gradient(rgba(90,150,220,.95),rgba(20,70,140,.95));border:1px solid rgba(255,255,255,.7);box-shadow:0 6px 20px rgba(0,20,60,.5)}
.toast.err{background:linear-gradient(rgba(235,110,95,.96),rgba(160,35,25,.96))}
.xfer{position:fixed;right:22px;bottom:22px;width:330px;z-index:9300;border-radius:9px;padding:0 6px 6px;
  background:linear-gradient(rgba(215,235,255,.92),rgba(150,198,240,.8));border:1px solid rgba(8,30,60,.75);box-shadow:0 8px 30px rgba(0,20,50,.5)}
.xfer .dt{display:flex;align-items:center;justify-content:space-between;height:28px;padding:0 4px;font-weight:600}
.xfer .xl{background:#fff;border:1px solid rgba(0,30,60,.5);max-height:220px;overflow:auto;padding:4px 8px}
.xi{padding:3px 0;font-size:12px}
.xi .nm{display:flex;justify-content:space-between;gap:8px}
.xi .nm span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- Gestionnaire de fichiers ---------- */
.files{background:#fff}
.f-top{display:flex;gap:6px;align-items:center;padding:6px 8px;background:linear-gradient(#f6faff,#dbe8f6);flex:none}
.addr{flex:1;min-width:0;display:flex;align-items:center;height:28px;border:1px solid #8ea3ba;border-radius:3px;background:#fff;overflow:hidden;cursor:text}
.crumbs{display:flex;align-items:center;overflow-x:auto;white-space:nowrap;flex:1;scrollbar-width:none}
.crumb{padding:2px 7px;border:1px solid transparent;border-radius:3px;cursor:pointer}
.crumb:hover{background:linear-gradient(#fafdff,#e0f1fc);border-color:#b8d6fb}
.csep{color:#6c86a3;font-size:10px}
.addr-in{flex:1;border:none!important;box-shadow:none!important;height:100%}
.fsearch{width:200px;border-radius:14px!important;padding:3px 12px!important}
.f-cmd{display:flex;flex-wrap:wrap;gap:2px;align-items:center;padding:3px 8px;flex:none;border-top:1px solid #fff;border-bottom:1px solid #a9bbd1;
  background:linear-gradient(#fbfdff 0,#eef4fa 48%,#dfe9f5 52%,#e9f1fa)}
.cb{padding:3px 9px;border:1px solid transparent;border-radius:3px;background:none;cursor:pointer;color:#0b2a4d;white-space:nowrap}
.cb:hover{border-color:#7da2ce;background:linear-gradient(#fafdff 0 48%,#dcecfb 52%,#c3def6);box-shadow:inset 0 0 0 1px rgba(255,255,255,.8)}
.cb:active{background:linear-gradient(#cfe5f8,#b5d6f3)}
.vsep{width:1px;height:20px;background:#b6c6d8;margin:0 4px}
.f-list{flex:1;min-height:0;overflow:auto;position:relative;outline:none;padding:6px;display:flex;flex-wrap:wrap;align-content:flex-start;gap:2px;user-select:none}
.f-list.dragover{box-shadow:inset 0 0 0 3px #4aa3ec;background:#f2f9ff}
.it{position:relative;border:1px solid transparent;border-radius:4px;cursor:default}
.it:hover{background:linear-gradient(#fafdff,#e5f3fc);border-color:#c5def5}
.it.sel{background:linear-gradient(#e9f6ff,#cfe9fa 50%,#bde0f6);border-color:var(--hl2)}
.it.cutd{opacity:.5}
.nm{word-break:break-word}
.v-icons .it{width:104px;padding:7px 4px 5px;text-align:center}
.v-icons .it .ico{height:64px;display:flex;align-items:center;justify-content:center}
.v-icons .it .thumb{max-width:92px;max-height:64px;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.5);border-radius:2px;object-fit:cover}
.v-icons .nm{font-size:12px;margin-top:3px;max-height:3.9em;overflow:hidden}
.v-small .it{width:210px;display:flex;align-items:center;gap:7px;padding:3px 6px}
.v-small .nm,.v-list .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v-list{flex-direction:column;flex-wrap:nowrap}
.v-list .it{display:flex;align-items:center;gap:7px;padding:2px 6px}
.v-details{display:block}
.v-details table{width:100%;border-collapse:collapse}
.v-details th{position:sticky;top:-6px;z-index:2;text-align:left;font-weight:500;padding:3px 8px;cursor:pointer;color:#26466b;
  background:linear-gradient(#fbfdff,#e6eef7 50%,#d9e5f2);border-right:1px solid #c0cfdf;border-bottom:1px solid #aebfd3}
.v-details td{padding:2px 8px;white-space:nowrap;color:#1d3a5c}
.v-details td.nmc{display:flex;align-items:center;gap:7px;max-width:420px}
.v-details tr.it{display:table-row}
.v-details tr.it td:first-child{border-radius:4px 0 0 4px}
.v-details tr.it.sel td{background:linear-gradient(#e9f6ff,#cfe9fa 50%,#bde0f6)}
.v-details tr.it:hover td{background:#eaf5fd}
.v-details tr.it.sel:hover td{background:linear-gradient(#e9f6ff,#cfe9fa 50%,#bde0f6)}
.v-details .r{text-align:right}
.band{position:absolute;z-index:5;border:1px solid #3c8fd6;background:rgba(80,160,235,.25);pointer-events:none}
.rn{font:inherit;width:100%;min-width:70px;border:1px solid #3c8fd6;padding:0 2px;text-align:inherit}
.empty{margin:auto;color:var(--muted);text-align:center;padding:40px}
.f-detail{display:flex;gap:12px;align-items:center;min-height:62px;padding:6px 12px;flex:none;border-top:1px solid #a9bbd1;background:linear-gradient(#f4f8fd,#dfe9f4)}
.f-detail .dn{font-weight:600}
.f-detail .dm{color:#4a6584;font-size:12px}
.f-status{padding:2px 12px;font-size:12px;color:#3d5a7c;flex:none;background:#e9f0f8;border-top:1px solid #c3d0df}

/* ---------- Vues secondaires (corbeille, partages, utilisateurs…) ---------- */
.page{flex:1;overflow:auto;padding:18px 22px}
.page h2{margin:0 0 4px;font-size:20px;font-weight:600;color:#12406f}
.page .sub{margin:0 0 14px;color:var(--muted)}
.card{border:1px solid #b8c9dc;border-radius:6px;padding:14px 16px;margin-bottom:14px;background:linear-gradient(#fff,#f3f7fc);box-shadow:0 1px 3px rgba(0,40,90,.12)}
.card h3{margin:0 0 8px;font-size:14px;color:#1b4a7c}
.tbl{width:100%;border-collapse:collapse}
.tbl th{text-align:left;padding:5px 8px;font-weight:500;color:#26466b;background:linear-gradient(#fbfdff,#e6eef7 50%,#d9e5f2);border-bottom:1px solid #aebfd3}
.tbl td{padding:6px 8px;border-bottom:1px solid #e2eaf3;vertical-align:middle}
.tbl tr:hover td{background:#f1f8fe}
.tbl .acts{white-space:nowrap;text-align:right}
.tbl .acts .btn{min-width:0;padding:2px 10px;margin-left:4px}
.toolrow{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.walls{display:flex;gap:12px;flex-wrap:wrap}
.wall{width:96px;height:60px;border-radius:6px;border:2px solid #fff;box-shadow:0 0 0 1px #5d7fa5,0 2px 5px rgba(0,0,0,.3);cursor:pointer}
.wall.on{box-shadow:0 0 0 2px #1a7ee0,0 0 10px #5ab6ff}
.form{display:flex;flex-direction:column;gap:9px;max-width:340px}

/* ---------- Éditeurs ---------- */
.tb{display:flex;flex-wrap:wrap;gap:3px;align-items:center;padding:4px 8px;flex:none;background:linear-gradient(#fbfdff,#dde8f4);border-bottom:1px solid #a9bbd1}
.tb .cb{min-width:28px;padding:3px 7px}
.tb select,.tb input[type=number]{padding:2px 4px}
.tb input[type=color]{width:28px;height:24px;padding:0;border:1px solid #9fb2c8;border-radius:3px;background:#fff;cursor:pointer}
.tb .vsep{margin:0 3px}
.sbar{display:flex;gap:16px;padding:2px 12px;flex:none;font-size:12px;color:#3d5a7c;background:#e9f0f8;border-top:1px solid #c3d0df}
.ed-main{flex:1;min-height:0;display:flex}
.fbar{display:flex;gap:6px;align-items:center;padding:4px 8px;background:#fff8dc;border-bottom:1px solid #e4d79b;flex:none}
.fbar input{width:170px}
.txt-wrap{flex:1;min-width:0;display:flex;min-height:0}
.gut{margin:0;padding:8px 8px 8px 12px;text-align:right;color:#7d92a9;background:#eef3f8;border-right:1px solid #cfd9e4;overflow:hidden;font:13px/1.5 "Cascadia Mono",Consolas,"DejaVu Sans Mono",monospace;user-select:none;min-width:44px}
.txt{flex:1;min-width:0;border:none!important;box-shadow:none!important;resize:none;margin:0;padding:8px 12px;border-radius:0!important;font:13px/1.5 "Cascadia Mono",Consolas,"DejaVu Sans Mono",monospace;white-space:pre;overflow:auto;tab-size:4}
.txt.wrap{white-space:pre-wrap}
.mdprev{flex:1;min-width:0;overflow:auto;padding:16px 24px;border-left:1px solid #cfd9e4;background:#fff;user-select:text;line-height:1.6}
.mdprev h1,.mdprev h2,.mdprev h3{color:#12406f;margin:.8em 0 .3em}
.mdprev code{background:#eef3f8;padding:1px 4px;border-radius:3px}
.mdprev pre{background:#0f2540;color:#e6f1ff;padding:10px 12px;border-radius:5px;overflow:auto}
.mdprev pre code{background:none;padding:0}
.mdprev blockquote{margin:.6em 0;padding:2px 12px;border-left:4px solid #7fb5ea;color:#3d5a7c;background:#f3f8fd}
.wd-scroll{flex:1;overflow:auto;background:linear-gradient(#7d90a8,#9db0c6)}
.sheet{width:794px;max-width:none;min-height:1123px;margin:18px auto;background:#fff;padding:72px 80px;outline:none;user-select:text;
  box-shadow:0 3px 16px rgba(0,0,0,.55);font:11pt Calibri,Carlito,Arial,sans-serif;color:#000;line-height:1.35}
.sheet table{border-collapse:collapse;margin:6px 0}
.sheet td,.sheet th{border:1px solid #888;padding:4px 8px;min-width:40px}
.sheet img{max-width:100%}
.sheet h1{font-size:20pt;margin:.4em 0}.sheet h2{font-size:16pt;margin:.4em 0}.sheet h3{font-size:13pt;margin:.4em 0}
.sheet blockquote{margin:.6em 0 .6em 1em;padding-left:12px;border-left:3px solid #aaa;color:#444}
.sheet pre{background:#f1f1f1;padding:8px;font-family:Consolas,monospace}
.grid-wrap{flex:1;overflow:auto}
.grid{border-collapse:separate;border-spacing:0;font:12px Calibri,Carlito,Arial,sans-serif;user-select:text}
.grid th{position:sticky;top:0;z-index:2;background:linear-gradient(#fbfdff,#e3ebf5 50%,#d6e2f0);border:1px solid #b0bfd0;border-width:0 1px 1px 0;font-weight:500;color:#26466b;padding:2px 6px;cursor:default;user-select:none}
.grid th.rh{position:sticky;left:0;z-index:1;top:auto;min-width:36px;text-align:center}
.grid th.ch.sel,.grid th.rh.sel{background:linear-gradient(#cfe6fa,#9ccbf0)}
.grid thead th:first-child{left:0;z-index:3}
.grid td{border:1px solid #dbe3ec;border-width:0 1px 1px 0;min-width:90px;height:21px;padding:1px 5px;white-space:pre;outline:none;background:#fff}
.grid td:focus{outline:2px solid #2d83d8;outline-offset:-2px;background:#f4faff}
.shtabs{display:flex;gap:3px;padding:3px 8px;background:#e4ecf6;border-top:1px solid #b0c2d6;flex:none;align-items:center;overflow-x:auto}
.shtab{padding:2px 12px;border:1px solid #98aec6;border-radius:0 0 5px 5px;background:linear-gradient(#f9fbfd,#d9e4f0);cursor:pointer;white-space:nowrap}
.shtab.on{background:#fff;font-weight:600;border-top-color:#fff}
.pdf-scroll{flex:1;overflow:auto;background:linear-gradient(#5d6f86,#7b8da4);padding:12px;position:relative}
.pg{position:relative;margin:0 auto 12px;background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.55)}
.pg canvas{display:block}
.textLayer{position:absolute;inset:0;overflow:hidden;line-height:1;opacity:.35}
.textLayer span,.textLayer br{color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0 0;user-select:text}
.textLayer ::selection{background:#2d83d8}
.img-scroll{flex:1;overflow:auto;background:repeating-conic-gradient(#d9e2ec 0 25%,#eef3f8 0 50%) 0 0/20px 20px;display:flex}
.img-scroll img{margin:auto;max-width:none;transition:transform .12s}
.media-box{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:radial-gradient(circle at 50% 30%,#2b4f7a,#0b1d33);padding:16px;min-height:0}
.media-box video{max-width:100%;max-height:100%;background:#000;border-radius:4px}
.media-box audio{width:min(560px,100%)}
.media-box .ttl{color:#fff;text-shadow:0 1px 4px #000;font-size:16px}

/* ---------- Adaptation mobile ---------- */
@media (max-width:820px){
  #app{inset:0;border-radius:0;border:none}
  #burger{display:inline-block}
  #side{position:absolute;z-index:30;left:8px;top:0;bottom:8px;transform:translateX(-120%);transition:transform .18s;box-shadow:4px 0 20px rgba(0,20,50,.5);background:#eef5fc}
  #side.open{transform:none}
  .fsearch{width:120px}
  .page{padding:14px}
  .sheet{width:100%;padding:24px 18px;min-height:0;margin:0}
  .v-small .it{width:100%}
  .gbtn.lbl{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* =====================================================================
   Thème « macOS » — Word, Excel, PowerPoint (classe .mac)
   ===================================================================== */
.mac{--acc:#0a84ff;--acc2:#0066d6;--chrome:#f5f5f7;--chrome2:#e8e8ed;--bd:#d2d2d7;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Helvetica Neue","Inter","Segoe UI",system-ui,sans-serif;
  background:var(--chrome2);color:#1d1d1f;-webkit-font-smoothing:antialiased}
.mbar{position:relative;display:flex;align-items:center;height:42px;padding:0 14px;flex:none;
  background:linear-gradient(#fbfbfc,#ececef);border-bottom:1px solid var(--bd)}
.lights{display:flex;gap:8px;align-items:center}
.lights button{width:12px;height:12px;padding:0;border-radius:50%;border:.5px solid rgba(0,0,0,.22);cursor:pointer;position:relative;
  box-shadow:inset 0 1px 1px rgba(255,255,255,.45)}
.lights .r{background:#ff5f57}.lights .y{background:#febc2e}.lights .g{background:#28c840}
.lights:hover button::after{content:attr(data-g);position:absolute;inset:0;font-size:9px;line-height:11px;text-align:center;color:rgba(0,0,0,.55);font-weight:700}
.mttl{position:absolute;left:50%;transform:translateX(-50%);font-weight:600;font-size:13px;max-width:46%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mttl small{font-weight:400;color:#86868b;margin-left:6px}
.msave{margin-left:auto;border:none;border-radius:6px;padding:4px 14px;color:#fff;cursor:pointer;font-weight:500;
  background:linear-gradient(#3b9bff,var(--acc));box-shadow:0 1px 1px rgba(0,0,0,.15),inset 0 .5px 0 rgba(255,255,255,.4)}
.msave:hover{background:linear-gradient(#52a8ff,#1a8cff)}.msave:active{background:var(--acc2)}
.mac .tb{background:var(--chrome);border-bottom:1px solid var(--bd);padding:7px 12px;gap:8px}
.mac .cb{border-radius:6px;padding:4px 10px;color:#1d1d1f;border:1px solid transparent;background:none;box-shadow:none;font-size:13px}
.mac .cb:hover{background:rgba(0,0,0,.06);border-color:transparent;box-shadow:none}
.mac .cb:active{background:rgba(0,0,0,.13)}
.mac .vsep{background:#d2d2d7;margin:0 2px}
.mac .seg{display:inline-flex;border:1px solid #c7c7cc;border-radius:7px;background:#fff;overflow:hidden;box-shadow:0 .5px 1px rgba(0,0,0,.08)}
.mac .seg .cb{border-radius:0;border-right:1px solid #e5e5ea;padding:3px 10px;min-width:30px}
.mac .seg .cb:last-child{border-right:none}
.mac .seg .cb.on{background:var(--acc);color:#fff}
.mac .seg .cb.on svg{fill:#fff}
.mac select,.mac input[type=number],.mac input[type=text],.mac input:not([type]){border:1px solid #c7c7cc;border-radius:6px;background:#fff;padding:3px 9px;box-shadow:0 .5px 1px rgba(0,0,0,.06);color:#1d1d1f}
.mac select{appearance:none;-webkit-appearance:none;padding-right:24px;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='14' viewBox='0 0 10 14'%3E%3Cpath d='M2 5l3-3 3 3M2 9l3 3 3-3' fill='none' stroke='%23555' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 7px center no-repeat}
.mac input:focus,.mac select:focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(10,132,255,.25)}
.mac input[type=color]{width:30px;height:24px;padding:1px;border-radius:6px;border:1px solid #c7c7cc;background:#fff}
.mac .btn{border-radius:6px;border:1px solid #c7c7cc;background:linear-gradient(#fff,#f1f1f3);box-shadow:0 .5px 1px rgba(0,0,0,.1);padding:4px 12px;min-width:0;color:#1d1d1f}
.mac .btn:hover{background:linear-gradient(#fff,#e9e9ed);box-shadow:0 .5px 1px rgba(0,0,0,.1)}
.mac .btn.primary{background:linear-gradient(#3b9bff,var(--acc));border-color:transparent;color:#fff}
.mac .btn.danger{color:#d70015}
.mac .sbar{background:var(--chrome);border-top:1px solid var(--bd);color:#6e6e73}
.mac .muted{color:#86868b}
/* Pages-like */
.mac .wd-scroll{background:var(--chrome2)}
.mac .sheet{margin:30px auto;box-shadow:0 0 0 .5px rgba(0,0,0,.12),0 2px 6px rgba(0,0,0,.1),0 12px 34px rgba(0,0,0,.12)}
/* Numbers-like */
.mac .grid th{background:var(--chrome);color:#6e6e73;border-color:var(--bd);font-weight:500}
.mac .grid th.ch.sel,.mac .grid th.rh.sel{background:#dfeeff;color:var(--acc2)}
.mac .grid td{border-color:#e5e5ea}
.mac .grid td:focus{outline:2px solid var(--acc);background:#fff}
.mac .shtabs{background:var(--chrome);border-top:1px solid var(--bd);padding:5px 10px;gap:4px}
.mac .shtab{border:none;border-radius:6px;background:transparent;padding:3px 13px;color:#444}
.mac .shtab:hover{background:rgba(0,0,0,.06)}
.mac .shtab.on{background:#fff;box-shadow:0 0 0 .5px rgba(0,0,0,.2),0 1px 2px rgba(0,0,0,.12);font-weight:600}
/* Keynote-like */
.mtb{padding:5px 12px!important;gap:2px!important}
.mb{display:flex;flex-direction:column;align-items:center;gap:1px;padding:4px 11px;border:none;background:none;border-radius:7px;cursor:pointer;color:#1d1d1f}
.mb i{font-style:normal;font-size:19px;line-height:22px}
.mb span{font-size:11px;color:#555}
.mb:hover{background:rgba(0,0,0,.06)}.mb:active{background:rgba(0,0,0,.13)}
.mb.pres i{color:var(--acc)}
.sl-main{flex:1;display:flex;min-height:0}
.sl-thumbs{width:178px;flex:none;overflow:auto;background:#efeff2;border-right:1px solid var(--bd);padding:12px 10px}
.th{display:flex;gap:6px;margin-bottom:11px;cursor:default}
.th .n{width:16px;text-align:right;font-size:11px;color:#6e6e73;padding-top:2px}
.th .box{border:2px solid transparent;border-radius:5px;overflow:hidden;line-height:0;box-shadow:0 0 0 .5px rgba(0,0,0,.2)}
.th.on .box{border-color:var(--acc)}
.sl-stage{flex:1;min-width:0;background:var(--chrome2);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;outline:none}
.canvas{position:relative;box-shadow:0 0 0 .5px rgba(0,0,0,.2),0 2px 6px rgba(0,0,0,.12),0 14px 36px rgba(0,0,0,.16)}
.sl{position:relative;overflow:hidden;font-family:Calibri,"Helvetica Neue",Arial,sans-serif;color:#000;user-select:none}
.el{position:absolute;display:flex;box-sizing:border-box}
.el .txc{width:100%;padding:calc(6 * var(--pt));outline:none;word-break:break-word;white-space:pre-wrap;line-height:1.2}
.el img{width:100%;height:100%;object-fit:fill;display:block}
.pa{min-height:1em}
.pa.bl{position:relative;padding-left:1.1em}
.pa.bl::before{content:"•";position:absolute;left:.2em}
.el .txc[contenteditable="true"]{user-select:text;cursor:text;background:rgba(10,132,255,.06)}
.selbox{position:absolute;border:1.5px solid var(--acc);pointer-events:none;box-sizing:border-box}
.selbox .mv{position:absolute;inset:0;pointer-events:auto;cursor:move}
.selbox.ed .mv,.selbox.ed .hd{pointer-events:none}
.hd{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;background:#fff;border:1.5px solid var(--acc);border-radius:50%;pointer-events:auto;box-shadow:0 1px 2px rgba(0,0,0,.25)}
.hd.nw{left:0;top:0;cursor:nwse-resize}.hd.n{left:50%;top:0;cursor:ns-resize}.hd.ne{left:100%;top:0;cursor:nesw-resize}
.hd.e{left:100%;top:50%;cursor:ew-resize}.hd.se{left:100%;top:100%;cursor:nwse-resize}.hd.s{left:50%;top:100%;cursor:ns-resize}
.hd.sw{left:0;top:100%;cursor:nesw-resize}.hd.w{left:0;top:50%;cursor:ew-resize}
.selbox.img .hd.n,.selbox.img .hd.s,.selbox.img .hd.e,.selbox.img .hd.w{display:none}
.insp{width:262px;flex:none;overflow:auto;background:var(--chrome);border-left:1px solid var(--bd);padding:4px 14px 14px}
.insp h4{margin:16px 0 7px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#86868b}
.insp .row{display:flex;gap:7px;align-items:center;margin-bottom:7px;flex-wrap:wrap}
.insp .row>*{flex:1;min-width:0}
.insp .row>.seg{flex:none}
.insp label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:#6e6e73}
.insp label.chk{flex-direction:row;align-items:center;gap:5px;font-size:12px;color:#1d1d1f;flex:none}
.insp .row input[type=number]{width:100%}
.insp .btn{flex:1}
.present{position:fixed;inset:0;z-index:9800;background:#000;display:flex;align-items:center;justify-content:center;cursor:none;outline:none}
.present .sl{box-shadow:none}
.phint{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.55);font:12px -apple-system,"Helvetica Neue",sans-serif;opacity:0;animation:phint 4s ease .3s both}
@keyframes phint{0%{opacity:0}15%,70%{opacity:1}100%{opacity:0}}
/* Mode « cadre agrandi » (bouton vert) */
body.focus #top,body.focus #side,body.focus #tabs{display:none}
body.focus #app{inset:0;border-radius:0;border:none}
body.focus #frame{padding:0;gap:0}
body.focus #views{border-radius:0;border:none}
@media (max-width:820px){
  .insp{display:none}.sl-thumbs{width:110px}.mttl{display:none}
}
/* Diapositives : guides d'alignement, gestes tactiles */
.sl-stage,.selbox,.canvas{touch-action:none}
.guide{position:absolute;background:#ff2d92;pointer-events:none;z-index:7}
.guide.v{top:0;bottom:0;width:1px;margin-left:-.5px}
.guide.h{left:0;right:0;height:1px;margin-top:-.5px}

/* =====================================================================
   Tableur v2 : sélection de plages, éditeur de cellule, barre de formule
   ===================================================================== */
.fbar2{display:flex;align-items:center;gap:8px;padding:5px 10px;flex:none;background:var(--chrome,#f5f5f7);border-bottom:1px solid var(--bd,#d2d2d7)}
.fbar2 .nm{min-width:70px;text-align:center;padding:3px 8px;border:1px solid #c7c7cc;border-radius:6px;background:#fff;font-weight:600;font-size:12px}
.fbar2 .fx{color:#86868b;font-style:italic;font-family:Georgia,serif}
.fbar2 .fxin{flex:1;font-family:"SF Mono",Menlo,Consolas,monospace;font-size:12px}
.grid-wrap{position:relative;scroll-padding:26px 50px;outline:none;background:#fff}
.grid{table-layout:fixed;border-collapse:separate;border-spacing:0;user-select:none}
.grid th.ch{position:sticky;top:0;z-index:3;height:22px;padding:0 4px;overflow:visible;white-space:nowrap}
.grid th.cn{position:sticky;top:0;left:0;z-index:4}
.grid th.rh{position:sticky;left:0;z-index:2}
.grid .cr{position:absolute;right:-3px;top:0;bottom:0;width:7px;cursor:col-resize;z-index:5}
.grid .cr:hover{background:rgba(10,132,255,.35)}
.grid td{overflow:hidden;white-space:nowrap;text-overflow:clip;cursor:cell;height:22px;padding:1px 6px;min-width:0;background:#fff}
.grid td.num{text-align:right}
.grid td.xerr{color:#d70015}
.grid.freeze tbody tr:first-child td{position:sticky;top:22px;z-index:1;box-shadow:0 1px 0 #b0b0b8}
.grid.freeze tbody tr:first-child th.rh{top:22px;z-index:3}
.selr{position:absolute;z-index:2;border:1.5px solid #0a84ff;background:rgba(10,132,255,.12);pointer-events:none}
.actc{position:absolute;z-index:2;border:2px solid #0a84ff;pointer-events:none;box-sizing:border-box}
.cell-ed{position:absolute;z-index:6;box-sizing:border-box;border:2px solid #0a84ff!important;border-radius:0!important;padding:0 5px!important;font:inherit;background:#fff!important;box-shadow:0 3px 10px rgba(0,0,0,.25)!important}
.mac .cb.on{background:rgba(10,132,255,.16);color:#0a6fd8}
.mac .seg .cb.on{background:#0a84ff;color:#fff}
.card code{background:#eef3f8;padding:1px 6px;border-radius:3px;user-select:text;word-break:break-all}
.card details{margin-top:10px}.card details summary{cursor:pointer;color:#1b5fa8;font-weight:600}
.card details p{margin:8px 0}

/* pastilles de choix d'arrière-plan (Paramètres) */
.wall[data-w=aero]{background:linear-gradient(165deg,#0c4a86,#1c8fd0 45%,#4ec3d8 75%,#8be0a6)}
.wall[data-w=lagoon]{background:linear-gradient(165deg,#06456b,#0e9aa7 45%,#3fd0c0 75%,#b9f0b0)}
.wall[data-w=dusk]{background:linear-gradient(165deg,#1b2a6b,#4a62c9 45%,#8aa6f0 75%,#d9c3f5)}
.wall[data-w=meadow]{background:linear-gradient(165deg,#0f6a8a,#3fae7a 45%,#9bdc6a 75%,#f2f08a)}
.seg{display:inline-flex;border:1px solid #b9c8d8;border-radius:8px;overflow:hidden}
.seg .cb.on{background:#cfe6fb;font-weight:700}

/* barre du haut du gestionnaire : sur petit écran, l'adresse passe sur sa propre ligne */
@media (max-width:820px){
  .f-top{flex-wrap:wrap}
  .addr{order:5;flex:1 1 100%}
  .fsearch{flex:1 1 120px;width:auto!important;min-width:0}
  .f-detail{display:none}
  .tb{overflow-x:auto}
}
