:root{--bg:#121417;--panel:#1a1d21;--panel2:#22262b;--line:#2f343a;--text:#e6e2da;--muted:#9a968e;--accent:#d9822b;--accent2:#f0a54a;--ok:#6fbf73;--bad:#e05a4f;--sel:#ffc04d}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font:14px/1.35 Barlow,system-ui,sans-serif;overflow:hidden}button,input,select{font:inherit;color:inherit}#app{display:grid;grid-template-rows:48px 1fr 28px;grid-template-columns:250px 1fr 290px;height:100%;grid-template-areas:"top top top" "left view right" "status status status"}header{grid-area:top;display:flex;align-items:center;gap:6px;padding:0 10px;background:#0d0f11;border-bottom:1px solid var(--line)}.brand{font:700 20px Barlow Condensed;letter-spacing:.5px;color:var(--accent2);white-space:nowrap;margin-right:8px}.brand small{color:var(--muted);font-weight:500;font-size:13px;margin-left:4px}.grp{display:flex;gap:2px;background:var(--panel2);border:1px solid var(--line);border-radius:7px;padding:2px}.btn{background:transparent;border:0;border-radius:5px;padding:5px 9px;cursor:pointer;color:var(--text);white-space:nowrap}.btn:hover{background:#2d3238}.btn.on{background:var(--accent);color:#1a1108;font-weight:600}.btn.solid{background:var(--panel2);border:1px solid var(--line)}.btn.solid:hover{border-color:var(--accent)}.btn.danger:hover{background:#4a2420}.btn:disabled{opacity:.4;cursor:default}.spacer{flex:1}.mobile-only{display:none}aside{background:var(--panel);overflow:auto;padding:10px;border-color:var(--line);border-style:solid;border-width:0}#left{grid-area:left;border-right-width:1px}#right{grid-area:right;border-left-width:1px}#view{grid-area:view;position:relative;overflow:hidden;background:#1b2026;touch-action:none}#view canvas{display:block;width:100%;height:100%}h3{font:600 13px Barlow Condensed;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);margin:14px 0 6px}h3:first-child{margin-top:2px}.tools{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.tool{flex-direction:row!important;justify-content:center;gap:6px!important;font-size:12.5px!important}.tool{display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 2px;border-radius:6px;background:var(--panel2);border:1px solid var(--line);cursor:pointer;font-size:11px}.tool b{font-size:17px;line-height:1}.tool.on{border-color:var(--accent);background:#3a2a19;color:var(--accent2)}.tabs{display:flex;gap:3px;margin-bottom:6px}.tabs .btn{flex:1;border:1px solid var(--line);background:var(--panel2)}.tabs .btn.on{border-color:var(--accent);background:#3a2a19;color:var(--accent2)}.chips{display:flex;flex-wrap:wrap;gap:4px}.chip{padding:5px 8px;border-radius:6px;background:var(--panel2);border:1px solid var(--line);cursor:pointer;display:flex;align-items:center;gap:6px;font-size:13px}.chip.on{border-color:var(--accent);color:var(--accent2);background:#3a2a19}.chip i{width:12px;height:12px;border-radius:3px;display:inline-block;border:1px solid #0006}.cat{font-size:11px;color:var(--muted);margin:8px 0 3px;text-transform:uppercase;letter-spacing:1px}.items{display:grid;grid-template-columns:1fr 1fr;gap:4px}.item{padding:6px 7px;border-radius:6px;background:var(--panel2);border:1px solid var(--line);cursor:pointer;font-size:12.5px;line-height:1.15}.item small{display:block;color:var(--muted);font-size:10.5px;margin-top:1px}.item.on{border-color:var(--accent);background:#3a2a19}.swatches{display:grid;grid-template-columns:repeat(8,1fr);gap:4px}.sw{aspect-ratio:1;border-radius:5px;border:2px solid transparent;cursor:pointer;box-shadow:inset 0 0 0 1px #0007}.sw.on{border-color:#fff}.sw.def{background:repeating-linear-gradient(45deg,#555 0,#555 4px,#333 4px,#333 8px)}.row{display:flex;align-items:center;gap:6px;margin:4px 0}.row label{flex:1;color:var(--muted);font-size:13px}input[type=number],input[type=text],select{background:#111316;border:1px solid var(--line);border-radius:5px;padding:4px 6px;width:100%}input[type=color]{width:34px;height:28px;padding:0;border:1px solid var(--line);border-radius:5px;background:none}input[type=range]{width:100%;accent-color:var(--accent)}.check{display:flex;align-items:center;gap:7px;margin:4px 0;cursor:pointer;font-size:13px}.check input{accent-color:var(--accent)}.card{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin-bottom:8px}.kv{display:flex;justify-content:space-between;gap:8px;font-size:13px;padding:2px 0}.kv span:first-child{color:var(--muted)}.mini{font-size:12px;color:var(--muted)}.pad{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;margin:6px 0}.pad .btn{background:#15181b;border:1px solid var(--line);padding:5px 0;font-size:12.5px}.levelbox{display:flex;gap:4px;align-items:center}.levelbox .val{min-width:62px;text-align:center;font:600 15px Barlow Condensed}#status{grid-area:status;display:flex;gap:16px;align-items:center;padding:0 10px;background:#0d0f11;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden}#status b{color:var(--text);font-weight:500}#selbox{position:absolute;border:1px dashed var(--sel);background:#ffc04d18;pointer-events:none;display:none}#viewlabel{position:absolute;left:10px;top:8px;font:600 13px Barlow Condensed;letter-spacing:1px;text-transform:uppercase;color:#cfd6dd99;pointer-events:none}#axes{position:absolute;right:10px;bottom:8px;font-size:11px;color:#cfd6dd99;pointer-events:none;text-align:right}#toast{position:absolute;left:50%;top:14px;transform:translate(-50%);background:#000c;border:1px solid var(--line);padding:6px 14px;border-radius:20px;font-size:13px;opacity:0;transition:opacity .2s;pointer-events:none;white-space:nowrap}#toast.show{opacity:1}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#000a;display:none;align-items:center;justify-content:center;z-index:50;padding:12px}.modal-bg.show{display:flex}.modal{background:var(--panel);border:1px solid var(--line);border-radius:10px;width:min(620px,100%);max-height:90vh;overflow:auto;padding:16px 18px}.modal h2{font:700 22px Barlow Condensed;margin:0 0 10px;color:var(--accent2)}.modal textarea{width:100%;height:180px;background:#0f1113;color:var(--text);border:1px solid var(--line);border-radius:6px;font:12px ui-monospace,monospace;padding:8px}.modal table{width:100%;border-collapse:collapse;font-size:13px}.modal td,.modal th{padding:4px;border-bottom:1px solid var(--line);text-align:left}.modal th{color:var(--muted);font-weight:500}.mfoot{display:flex;gap:6px;justify-content:flex-end;margin-top:12px;flex-wrap:wrap}.planlist{display:flex;flex-direction:column;gap:4px;margin:8px 0}.planrow{display:flex;align-items:center;gap:6px;background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:5px 8px}.planrow span{flex:1}.keys td:first-child{white-space:nowrap;color:var(--accent2);font-family:ui-monospace,monospace;font-size:12px}.note{font-size:12px;color:var(--muted);background:#2a2216;border:1px solid #4a3a20;border-radius:6px;padding:6px 8px;margin:8px 0}.pw-ok{color:var(--ok)}.pw-bad{color:var(--bad)}a{color:var(--accent2)}input[type=email],input[type=password],input[type=search],textarea{background:#111316;border:1px solid var(--line);border-radius:5px;padding:4px 6px;width:100%;color:inherit;font:inherit}.btn.primary{background:#3a2a19;border-color:var(--accent);color:var(--accent2)}#planBar{display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden;margin-left:6px}#planBar .pbname{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}#planBar .mini{white-space:nowrap}#planBar .btn{padding:4px 7px;font-size:13px;color:var(--muted)}#planBar .btn:hover{color:var(--text)}#btnUser,#pageUser{max-width:160px;overflow:hidden;text-overflow:ellipsis}#btnUser.on,#pageUser.on{background:var(--panel2);border-color:var(--accent);color:var(--accent2)}.badge{font-size:11px;padding:1px 6px;border-radius:9px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}.badge.public{border-color:#3f6b44;color:var(--ok)}.badge.ro{border-color:#6b4a3f;color:#e08a6f}.badge.claude{border-color:#6b5a8f;color:#b9a3f0}.form{display:flex;flex-direction:column;gap:8px}.form label{display:block;color:var(--muted);font-size:13px}.form label>input,.form label>select,.form label>textarea{display:block;margin-top:3px}.form textarea{height:auto;font:inherit}.form label small{color:#77736c}.ferr{color:var(--bad);font-size:13px;min-height:0}.ferr ul{margin:4px 0;padding-left:18px;max-height:160px;overflow:auto}.mfoot .spacer{flex:1}.mfoot a{align-self:center;font-size:13px}.modal.wide{width:min(980px,100%)}.tags{display:flex;flex-wrap:wrap;gap:4px;margin:3px 0}.tag{font-size:12px;padding:1px 7px;border-radius:9px;background:#2a2f35;color:#c8c3b9;white-space:nowrap}.tag[data-tag],.tag.on{cursor:pointer}.tag[data-tag]:hover,.tag.on{background:#3a2a19;color:var(--accent2)}.tag b{cursor:pointer;margin-left:4px;color:var(--muted)}.tagfield{background:#111316;border:1px solid var(--line);border-radius:5px;padding:4px;display:flex;flex-wrap:wrap;gap:4px;align-items:center}.tagfield .tagbox{display:contents}.tagfield input{border:0;background:none;flex:1;min-width:140px;width:auto;padding:2px}.tagfield input:focus{outline:none}.prow{display:grid;grid-template-columns:96px 1fr auto;gap:10px;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:6px}.prow.cur{border-color:var(--accent)}.thumb{aspect-ratio:16/10;border-radius:5px;background:#1b2026 center/cover no-repeat;border:1px solid var(--line)}.thumb:not([style]):after{content:"7D2D";display:flex;height:100%;align-items:center;justify-content:center;color:#3a3f45;font:700 16px Barlow Condensed}.pinfo{min-width:0}.pinfo .desc,.gcard .desc{white-space:pre-line;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.pact{display:flex;flex-wrap:wrap;gap:3px;justify-content:flex-end}.pact .btn{font-size:12.5px;padding:4px 7px}.gfilters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.gfilters input[type=search]{flex:1;min-width:200px;width:auto}.ggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:8px}.gcard{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:3px}.gcard .thumb,.gcard .gname{cursor:pointer}.gcard .gname:hover{color:var(--accent2)}.gcard .pact{justify-content:flex-start;margin-top:auto;padding-top:4px}.alist table td{vertical-align:middle}.alist tr.off td{opacity:.55}.alist .pact{justify-content:flex-end}body.ro .tool:not([data-tool=select]),body.ro #digPanel,body.ro #tabBlock,body.ro #tabItem,body.ro #swatches,body.ro [data-inmat]{opacity:.35;pointer-events:none}#view.drop:after{content:"Déposez le fichier .json pour l'importer";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border:2px dashed var(--accent);border-radius:10px;background:#0009;display:flex;align-items:center;justify-content:center;font:600 18px Barlow Condensed;color:var(--accent2);pointer-events:none}a.brand{text-decoration:none}#page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:var(--bg);display:flex;flex-direction:column;overflow:hidden}#page[hidden]{display:none}#page>header{flex:0 0 48px}#pageBody{flex:1;overflow:auto}.pagewrap{max-width:1280px;margin:0 auto;padding:18px 20px 40px}.pagewrap h1{font:700 28px Barlow Condensed;color:var(--accent2);margin:0 0 12px}.ptools{display:flex;gap:6px;align-items:center;margin:10px 0}.ptools .spacer{flex:1}.dt-bar{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:6px}.dt-bar .dt-q{max-width:320px}.dt-size{font-size:13px;color:var(--muted);white-space:nowrap}.dt-size select{width:auto}.dt-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:8px}.dt table{width:100%;border-collapse:collapse;font-size:13.5px}.dt th{text-align:left;font-weight:600;color:var(--muted);background:var(--panel);padding:8px;border-bottom:1px solid var(--line);white-space:nowrap;-webkit-user-select:none;user-select:none}.dt th.sortable{cursor:pointer}.dt th.sortable:hover{color:var(--text)}.dt th.sortable:after{content:" ↕";opacity:.35}.dt th[aria-sort=ascending]:after{content:" ▲";opacity:1;color:var(--accent2)}.dt th[aria-sort=descending]:after{content:" ▼";opacity:1;color:var(--accent2)}.dt td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:middle}.dt tbody tr:hover{background:#1f2328}.dt tbody tr.cur{box-shadow:inset 3px 0 var(--accent)}.dt td.num,.dt th.num{text-align:right}.dt .c-thumb{width:88px}.dt .c-thumb .thumb{width:80px}.dt .c-act .pact{flex-wrap:nowrap}.dt .pname{color:var(--text);font-weight:600;text-decoration:none}.dt .pname:hover{color:var(--accent2)}.dt .desc{max-width:380px}.dt-empty{text-align:center;color:var(--muted);padding:24px!important}.dt-foot{display:flex;justify-content:space-between;align-items:center;margin-top:8px;gap:8px;flex-wrap:wrap}.dt-pages{display:flex;gap:2px;align-items:center}.dt-pages .btn{min-width:30px;border:1px solid var(--line)}@media (max-width:1200px){#planBar .pbname{max-width:130px}.dt .c-act .pact{flex-wrap:wrap}}@media (max-width:700px){.prow{grid-template-columns:1fr}.prow .thumb{display:none}}@media (max-width:900px){#app{grid-template-columns:1fr;grid-template-areas:"top" "view" "status"}aside{position:fixed;top:48px;bottom:28px;width:min(300px,86vw);z-index:20;display:none;box-shadow:0 0 30px #000}aside.open{display:block}#left{left:0}#right{right:0}.mobile-only{display:inline-block}.brand,.hide-sm{display:none}header .btn{padding:5px 7px}header{overflow-x:auto}}.form .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}@media (max-width:700px){.form .cols{grid-template-columns:1fr}}details summary{cursor:pointer;color:var(--accent2)}code{font:12px ui-monospace,monospace;background:#0f1113;padding:1px 4px;border-radius:4px;word-break:break-all}.cmlist{max-height:45vh;overflow:auto;display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.cm{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:6px 10px}.cm a{margin-left:6px}.cmbody{white-space:pre-wrap;margin-top:2px}
