/* V-STORM · Configuration — panneau Favoris (grammaire v5) */
.fsec{margin-bottom:30px}
.fsec:last-child{margin-bottom:0}
.fsec__h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:5px}
.fsec__h .ti{width:16px;height:16px;flex-shrink:0;color:var(--vio)}
.fsec__h .ti svg{width:100%;height:100%}
.fsec__h h3{margin:0;font-size:14.5px;font-weight:700;letter-spacing:-0.015em}
.fsec__h h3 span{font-weight:600;color:var(--ink-3);font-size:12.5px}
.fsec__h .sp{flex:1}
.fsec__d{font-size:12.5px;color:var(--ink-3);line-height:1.5;margin:0 0 14px;max-width:620px}
.fsec__d b{color:var(--ink-2);font-weight:600}
.fsec__d code{font-family:var(--vs-font-mono);font-size:11.5px;font-weight:600;color:var(--vio);background:var(--vio-tint);border-radius:6px;padding:2px 7px}

/* stats mono */
.fst{display:inline-flex;align-items:center;gap:9px;flex-wrap:wrap;font-family:var(--vs-font-mono);font-size:10.5px;font-weight:600;letter-spacing:.04em;color:var(--ink-3)}
.fst i{display:inline-flex;align-items:center;gap:5px;font-style:normal}
.fst i svg{width:12px;height:12px;opacity:.85}
.fst .up{color:var(--ok)}
.fst .sep{opacity:.35}

/* message editor */
.med{border-radius:13px;border:1px solid var(--hair-2);background:rgba(255,255,255,0.02);overflow:hidden}
.med+.med{margin-top:12px}
.med__bar{display:flex;align-items:center;gap:8px;padding:10px 11px;border-bottom:1px solid var(--hair);flex-wrap:wrap}
.med__n{width:24px;height:24px;border-radius:7px;flex-shrink:0;display:grid;place-items:center;font-family:var(--vs-font-mono);font-size:12px;font-weight:700;color:var(--vio);background:var(--vio-tint)}
.med__bar .sp{flex:1}
.med__x{width:28px;height:28px;border-radius:8px;flex-shrink:0;display:grid;place-items:center;color:var(--ink-3);background:none;border:0;cursor:pointer;transition:background .12s,color .12s}
.med__x:hover{background:var(--vs-err-soft);color:var(--vs-err)}
.med__x svg{width:14px;height:14px}
.med textarea{width:100%;min-height:132px;resize:vertical;background:none;border:0;outline:0;padding:15px 16px 8px;color:var(--ink);font-size:14px;line-height:1.6;font-family:inherit;display:block}
.med textarea::placeholder{color:var(--ink-4)}
.med__ft{display:flex;justify-content:flex-end;padding:0 16px 12px}
.med__c{font-family:var(--vs-font-mono);font-size:10.5px;font-weight:600;color:var(--ink-4)}
.med__pv{display:flex;gap:9px;margin:0 12px 12px;padding:11px 13px;border-radius:11px;background:var(--vio-tint);border:1px solid color-mix(in oklab,var(--vio) 32%,transparent);font-size:12.5px;line-height:1.55;color:var(--ink-2);font-style:italic}
.med__pv .i{flex-shrink:0;color:var(--vio);font-style:normal;display:inline-flex;margin-top:1px}
.med__pv .i svg{width:14px;height:14px}

/* dashed add */
.dash{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:44px;margin-top:12px;border-radius:12px;border:1px dashed color-mix(in oklab,var(--vio) 38%,transparent);background:none;color:var(--vio);font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:background .12s,color .12s}
.dash:hover{background:var(--vio-tint)}
.dash svg{width:14px;height:14px}

/* generic row (offre auto, etc.) */
.frow{display:flex;align-items:center;gap:13px;margin-top:12px;padding:13px 16px;border-radius:13px;border:1px solid var(--hair);background:rgba(255,255,255,0.015)}
.frow .fi{width:34px;height:34px;border-radius:10px;flex-shrink:0;display:grid;place-items:center;color:var(--vio);background:var(--vio-tint)}
.frow .fi svg{width:16px;height:16px}
.frow .fb{flex:1;min-width:0}
.frow .fb .t{font-size:13.5px;font-weight:600;display:block}
.frow .fb .d{font-size:12.5px;color:var(--ink-3);margin-top:2px;display:block;line-height:1.45}

/* stepper */
.stp{display:inline-flex;align-items:center;height:38px;border-radius:10px;background:rgba(255,255,255,0.03);border:1px solid var(--hair-2);overflow:hidden;flex-shrink:0}
.stp button{width:32px;height:100%;border:0;background:none;color:var(--ink-3);font-size:16px;font-weight:600;cursor:pointer;display:grid;place-items:center;transition:background .12s,color .12s}
.stp button:hover{background:var(--vio-tint);color:var(--ink)}
.stp input{width:38px;height:100%;border:0;background:none;outline:0;text-align:center;color:var(--ink);font-family:var(--vs-font-mono);font-size:13.5px;font-weight:700}
.stp .u{font-family:var(--vs-font-mono);font-size:11.5px;font-weight:700;color:var(--ink-4);padding-right:7px}

/* conditional cards */
.cnd{border-radius:13px;border:1px solid var(--hair);overflow:hidden;transition:border-color .14s}
.cnd+.cnd{margin-top:10px}
.cnd.open{border-color:color-mix(in oklab,var(--vio) 34%,transparent)}
.cnd__h{display:flex;align-items:center;gap:13px;padding:13px 16px}
.cnd__ic{width:34px;height:34px;border-radius:10px;flex-shrink:0;display:grid;place-items:center;color:var(--vio);background:var(--vio-tint)}
.cnd__ic svg{width:16px;height:16px}
.cnd__b{flex:1;min-width:0}
.cnd__b .t{font-size:13.5px;font-weight:600}
.cnd__b .d{font-size:12.5px;color:var(--ink-3);margin-top:2px}
.cnd__body{display:none;padding:15px 16px 16px;border-top:1px solid var(--hair)}
.cnd.open .cnd__body{display:block}
.cline{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:13px}
.cline .l{font-size:13px;font-weight:600;color:var(--ink-2)}
.num{width:66px;height:40px;border-radius:10px;text-align:center;background:rgba(255,255,255,0.03);border:1px solid var(--hair-2);color:var(--ink);font-family:var(--vs-font-mono);font-size:13.5px;font-weight:700;outline:0}
.num:focus{border-color:color-mix(in oklab,var(--vio) 55%,transparent)}
.sel{height:40px;border-radius:10px;padding:0 32px 0 13px;background:rgba(255,255,255,0.03);border:1px solid var(--hair-2);color:var(--ink);font-family:inherit;font-size:13.5px;font-weight:600;cursor:pointer;outline:0;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='13' height='13' fill='none' stroke='%239a94b0' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><polyline points='4 7 10 13 16 7'/></svg>");background-repeat:no-repeat;background-position:right 11px center}
.days{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:13px}
.day{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;cursor:pointer;background:rgba(255,255,255,0.03);border:1px solid var(--hair-2);color:var(--ink-3);font-family:inherit;font-size:12.5px;font-weight:700;transition:all .12s}
.day:hover{color:var(--ink)}
.day.on{background:var(--vio-tint);border-color:color-mix(in oklab,var(--vio) 45%,transparent);color:var(--ink)}
.fta{width:100%;min-height:88px;resize:vertical;border-radius:11px;padding:12px 14px;background:rgba(255,255,255,0.03);border:1px solid var(--hair-2);color:var(--ink);font-family:inherit;font-size:13.5px;line-height:1.55;outline:0;display:block}
.fta::placeholder{color:var(--ink-4)}
.fta:focus{border-color:color-mix(in oklab,var(--vio) 55%,transparent)}

/* search field */
.srch{display:flex;align-items:center;gap:10px;height:46px;padding:0 15px;border-radius:12px;background:rgba(255,255,255,0.03);border:1px solid var(--hair-2)}
.srch svg{width:16px;height:16px;color:var(--ink-4);flex-shrink:0}
.srch input{flex:1;min-width:0;background:none;border:0;outline:0;color:var(--ink);font-family:inherit;font-size:13.5px}
.srch input::placeholder{color:var(--ink-4)}

/* rule / tier rows */
.rrow{display:flex;align-items:center;gap:12px;padding:13px 15px;border-radius:12px;border:1px solid var(--hair);background:rgba(255,255,255,0.015)}
.rrow+.rrow{margin-top:10px}
.rrow .rb{flex:1;min-width:0}
.rrow .rb .t{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rrow .rb .d{font-size:12px;color:var(--ink-3);margin-top:2px}
.pct{font-family:var(--vs-font-mono);font-size:12.5px;font-weight:700;color:var(--vio);background:var(--vio-tint);border-radius:8px;padding:5px 10px;flex-shrink:0}
.xbtn{width:34px;height:34px;border-radius:9px;flex-shrink:0;display:grid;place-items:center;color:var(--ink-3);background:none;border:0;cursor:pointer;transition:background .12s,color .12s}
.xbtn:hover{background:var(--vs-err-soft);color:var(--vs-err)}
.xbtn svg{width:15px;height:15px}
.empty{padding:18px;border-radius:12px;border:1px dashed var(--hair-2);text-align:center;font-size:12.5px;color:var(--ink-4)}

/* hashtags chips */
.tags{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tag{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 6px 0 12px;border-radius:9px;background:var(--vio-tint);border:1px solid color-mix(in oklab,var(--vio) 32%,transparent);font-family:var(--vs-font-mono);font-size:12px;font-weight:600;color:var(--ink)}
.tag button{width:20px;height:20px;border-radius:6px;display:grid;place-items:center;border:0;background:none;color:var(--ink-3);cursor:pointer;transition:background .12s,color .12s}
.tag button:hover{background:var(--vs-err-soft);color:var(--vs-err)}
.tag button svg{width:12px;height:12px}
.tagadd{display:flex;align-items:center;gap:8px;height:34px;padding:0 12px;border-radius:9px;background:rgba(255,255,255,0.03);border:1px dashed var(--hair-2)}
.tagadd input{width:130px;background:none;border:0;outline:0;color:var(--ink);font-family:var(--vs-font-mono);font-size:12px;font-weight:600}
.tagadd input::placeholder{color:var(--ink-4)}

/* presets */
.presets{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:22px}
.presets .lbl{font-size:13px;color:var(--ink-3);margin-right:2px}
.preset{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:9px;background:rgba(255,255,255,0.03);border:1px solid var(--hair);color:var(--ink-2);font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .12s}
.preset:hover{color:var(--ink)}
.preset.on{background:var(--vio-tint);border-color:color-mix(in oklab,var(--vio) 40%,transparent);color:var(--ink)}
.preset .pd{width:7px;height:7px;border-radius:50%}

/* callout */
.cal{display:flex;gap:11px;margin-top:14px;padding:14px 16px;border-radius:12px;background:var(--vio-tint);border:1px solid color-mix(in oklab,var(--vio) 30%,transparent);font-size:12.5px;line-height:1.6;color:var(--ink-2)}
.cal .ci{flex-shrink:0;color:var(--vio);display:inline-flex;margin-top:2px}
.cal .ci svg{width:15px;height:15px}
.cal b{color:var(--ink);font-weight:700}
.cal .cb{display:flex;flex-direction:column;gap:4px;min-width:0}
.cal .ln{display:block;line-height:1.7}
.cal .n{font-family:var(--vs-font-mono);font-size:11.5px;font-weight:700;color:var(--vio);margin-right:7px}
.cal .ln code,.cal .ln b{margin:0 2px}
.cal code{font-family:var(--vs-font-mono);font-size:12px;font-weight:700;color:var(--ink);background:rgba(255,255,255,0.06);border-radius:6px;padding:2px 7px}

/* tier row (marges) */
.trow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 15px;border-radius:12px;border:1px solid var(--hair);background:rgba(255,255,255,0.015)}
.trow+.trow{margin-top:10px}
.trow .from{font-family:var(--vs-font-mono);font-size:12.5px;font-weight:700;color:var(--ink-2);min-width:62px}
.trow .ar{color:var(--ink-4);display:inline-flex;flex-shrink:0}
.trow .ar svg{width:15px;height:15px}
.trow .rl{font-size:12.5px;font-weight:600;color:var(--vio)}
.trow .sp{flex:1}

/* grid 2 cols */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:620px){.grid2{grid-template-columns:1fr}}
.gcell{display:flex;align-items:center;gap:12px;padding:13px 15px;border-radius:12px;border:1px solid var(--hair);background:rgba(255,255,255,0.015)}
.gcell .gt{flex:1;font-size:13px;font-weight:600;line-height:1.25}
.gcell .gt small{display:block;font-size:12px;font-weight:500;color:var(--ink-3)}

/* étapes */
.srow{display:flex;align-items:center;gap:12px;padding:13px 15px;border-radius:12px;border:1px solid var(--hair);background:rgba(255,255,255,0.015)}
.srow+.srow{margin-top:10px}
.srow .st{flex:1;font-size:13.5px;font-weight:600}
.srow.final{border-color:color-mix(in oklab,var(--ok) 32%,transparent);background:color-mix(in oklab,var(--ok) 7%,transparent)}
.srow.final .bg{font-family:var(--vs-font-mono);font-size:12.5px;font-weight:700;color:#04241a;background:var(--ok);border-radius:9px;padding:7px 13px}

/* message variants */
.var{position:relative}
.var+.var{margin-top:10px}
.var textarea{min-height:78px;padding-right:44px}
.var .del{position:absolute;right:9px;bottom:9px;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;border:0;background:none;color:var(--ink-4);cursor:pointer;transition:background .12s,color .12s}
.var .del:hover{background:var(--vs-err-soft);color:var(--vs-err)}
.var .del svg{width:14px;height:14px}

/* sub-title inside section */
.fsub{font-size:13.5px;font-weight:700;letter-spacing:-0.01em;margin:22px 0 5px}
.fsub:first-child{margin-top:0}

/* days full width */
.days7{display:grid;grid-template-columns:repeat(7,1fr);gap:9px}
@media(max-width:620px){.days7{grid-template-columns:repeat(4,1fr)}}
.days7 .d7{height:46px;border-radius:11px;display:grid;place-items:center;cursor:pointer;background:rgba(255,255,255,0.03);border:1px solid var(--hair-2);color:var(--ink-3);font-family:inherit;font-size:13px;font-weight:700;transition:all .12s}
.days7 .d7:hover{color:var(--ink)}
.days7 .d7.on{background:var(--vio-tint);border-color:color-mix(in oklab,var(--vio) 45%,transparent);color:var(--ink)}

/* textarea + counter */
.tac{position:relative}
.tac textarea{padding-bottom:26px;min-height:100px}
.tac .cc{position:absolute;right:12px;bottom:8px;font-family:var(--vs-font-mono);font-size:10.5px;font-weight:600;color:var(--ink-4)}

/* tabs */
.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--hair);margin-bottom:14px}
.tab{height:40px;padding:0 14px;background:none;border:0;border-bottom:2px solid transparent;color:var(--ink-3);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:color .12s,border-color .12s}
.tab:hover{color:var(--ink-2)}
.tab.on{color:var(--ink);border-bottom-color:var(--vio)}

/* big pick cards */
.picks{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:760px){.picks{grid-template-columns:1fr}}
.pick{position:relative;text-align:left;padding:16px 18px;border-radius:13px;background:rgba(255,255,255,0.02);border:1px solid var(--hair);cursor:pointer;transition:all .13s}
.pick:hover{border-color:var(--hair-2)}
.pick.on{background:var(--vio-tint);border-color:color-mix(in oklab,var(--vio) 45%,transparent)}
.pick .pt{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:700;color:var(--ink)}
.pick .pt svg{width:15px;height:15px;color:var(--vio)}
.pick .pd{font-size:12.5px;color:var(--ink-3);line-height:1.55;margin-top:6px;max-width:92%}
.pick .pc{position:absolute;top:14px;right:14px;width:20px;height:20px;border-radius:50%;display:none;place-items:center;background:var(--vio);color:#fff}
.pick .pc svg{width:12px;height:12px}
.pick.on .pc{display:grid}
.picks3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:760px){.picks3{grid-template-columns:1fr}}
.picks3 .pick{text-align:center;padding:16px 14px}
.picks3 .pick .pt{justify-content:center}
.picks3 .pick .pd{margin:4px auto 0;max-width:none}

/* radio list */
.radios{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.radio{display:flex;align-items:center;gap:11px;background:none;border:0;padding:0;cursor:pointer;text-align:left;color:var(--ink-2);font-family:inherit;font-size:13px;font-weight:500}
.radio .rd{width:18px;height:18px;border-radius:50%;flex-shrink:0;border:1.5px solid var(--hair-2);display:grid;place-items:center}
.radio.on .rd{border-color:var(--vio)}
.radio.on .rd::after{content:'';width:9px;height:9px;border-radius:50%;background:var(--vio)}
.radio.on{color:var(--ink)}

/* situation card */
.sit{padding:16px;border-radius:13px;border:1px solid var(--hair);background:rgba(255,255,255,0.015)}
.sit+.sit{margin-top:12px}
.sit__h{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.sit__n{font-family:var(--vs-font-mono);font-size:11px;font-weight:700;color:var(--vio);background:var(--vio-tint);border-radius:7px;padding:4px 8px}
.sit__t{flex:1;font-size:13.5px;font-weight:700}
.sit .lb{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--vio);margin:0 0 7px}
.sit .lb svg{width:13px;height:13px}
.sit .lb.mute{color:var(--ink-2)}
.sit .hint{font-size:11.5px;color:var(--ink-4);margin:6px 0 0}
.sit .fld{width:100%;height:44px;border-radius:11px;padding:0 14px;background:rgba(255,255,255,0.03);border:1px solid var(--hair-2);color:var(--ink);font-family:inherit;font-size:13.5px;outline:0}
.sit .fld::placeholder{color:var(--ink-4)}
.sit .fld:focus{border-color:color-mix(in oklab,var(--vio) 55%,transparent)}
.sit .blk{margin-top:14px}

/* micro label */
.mlbl{font-family:var(--vs-font-mono);font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);margin:20px 0 10px}

/* group heading (2nd level) */
.fhead{margin:34px 0 18px}
.fhead h3{margin:0;font-size:16px;font-weight:700;letter-spacing:-0.02em}
.fhead p{margin:6px 0 0;font-size:12.5px;color:var(--ink-3)}

/* stars */
.rstars{display:flex;align-items:center;gap:8px}
.rstar{width:30px;height:30px;border:0;background:none;padding:0;cursor:pointer;color:var(--ink-4);transition:color .12s,transform .12s}
.rstar:hover{transform:translateY(-1px)}
.rstar svg{width:100%;height:100%}
.rstar.on{color:#e9bd6a}

/* inline field row */
.inl{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.inl+.inl{margin-top:10px}
.inl .l{font-size:13px;font-weight:500;color:var(--ink-3)}
.inl .sp{flex:1}
.calc{margin:12px 0 0;font-size:12.5px;font-weight:700;color:var(--vio)}
.calc span{font-weight:600;color:var(--ink-3)}

/* checkbox */
.cbx{display:inline-flex;align-items:center;gap:10px;margin-top:14px;padding:0;background:none;border:0;cursor:pointer;color:var(--ink-2);font-family:inherit;font-size:13px;font-weight:500}
.cbx .bx{width:19px;height:19px;border-radius:6px;flex-shrink:0;display:grid;place-items:center;border:1.5px solid var(--hair-2);color:transparent;transition:all .12s}
.cbx .bx svg{width:12px;height:12px}
.cbx.on{color:var(--ink)}
.cbx.on .bx{background:var(--vio);border-color:var(--vio);color:#fff}

/* standalone field + code block + tokens */
.fld{width:100%;height:44px;border-radius:11px;padding:0 14px;background:rgba(255,255,255,0.03);border:1px solid var(--hair-2);color:var(--ink);font-family:inherit;font-size:13.5px;outline:0}
.fld::placeholder{color:var(--ink-4)}
.fld:focus{border-color:color-mix(in oklab,var(--vio) 55%,transparent)}
.fld.mono,.fta.mono{font-family:var(--vs-font-mono);font-size:12.5px}
.code{padding:14px 16px;border-radius:12px;background:var(--vio-tint);border:1px solid color-mix(in oklab,var(--vio) 28%,transparent);font-family:var(--vs-font-mono);font-size:12.5px;font-weight:600;color:var(--vio);line-height:1.7;word-break:break-word}
.tokens{display:flex;gap:8px;flex-wrap:wrap}
.tok{height:32px;padding:0 11px;border-radius:8px;background:rgba(255,255,255,0.03);border:1px solid var(--hair);color:var(--vio);font-family:var(--vs-font-mono);font-size:11.5px;font-weight:600;cursor:pointer;transition:background .12s}
.tok:hover{background:var(--vio-tint)}
.phd__b p code{font-family:var(--vs-font-mono);font-size:11.5px;font-weight:600;color:var(--vio);background:var(--vio-tint);border-radius:6px;padding:2px 6px}

/* sauvegardes */
.bbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px}
.bmeta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:16px 0 14px}
.bmeta .res{font-size:12.5px;color:var(--ink-3)}
.bmeta .res b{color:var(--ink);font-weight:700}
.bmeta .sp{flex:1}
.bmeta .quota{font-family:var(--vs-font-mono);font-size:11.5px;font-weight:700;color:var(--ink-3)}
.bmeta .quota span{color:var(--ink-4);font-weight:600}
.bgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:12px}
.bcard{border-radius:12px;border:1px solid var(--hair);background:rgba(255,255,255,0.015);overflow:hidden}
.bthumb{position:relative;aspect-ratio:1;display:grid;place-items:center;color:var(--ink-4);background:linear-gradient(160deg,rgba(255,255,255,0.06),rgba(255,255,255,0.02));border-bottom:1px solid var(--hair)}
.bthumb svg{width:34px;height:34px}
.bthumb .sold{position:absolute;top:8px;left:8px;font-family:var(--vs-font-mono);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);background:rgba(10,10,15,.72);border:1px solid var(--hair-2);border-radius:999px;padding:3px 8px}
.bcard .bt{font-size:11.5px;font-weight:600;line-height:1.35;padding:10px 10px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bcard .bp{font-family:var(--vs-font-mono);font-size:12.5px;font-weight:700;color:var(--ink);padding:6px 10px 11px}

/* mémoire */
.mempty{padding:26px;text-align:center;font-size:13px;color:var(--ink-4);margin:0}
.cal.soft{background:rgba(255,255,255,0.025);border-color:var(--hair)}
.cal.soft .ci{display:inline-flex;vertical-align:-2px;margin-right:7px}
.cal.soft b{font-weight:700}
.mcard{padding:15px 16px;border-radius:12px;border:1px solid var(--hair);background:rgba(255,255,255,0.015)}
.mcard+.mcard{margin-top:10px}
.mcard__h{display:flex;align-items:center;gap:10px}
.mcard__n{font-family:var(--vs-font-mono);font-size:11px;font-weight:700;color:var(--vio);background:var(--vio-tint);border-radius:7px;padding:3px 8px}
.mcard__t{flex:1;font-size:13.5px;font-weight:700}
.mcard__x{margin:9px 0 0;font-size:13px;color:var(--ink-2);line-height:1.55}
.mcard__f{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:12px}
.mcard__f .sp{flex:1}
.mtag{font-family:var(--vs-font-mono);font-size:10px;font-weight:600;letter-spacing:.04em;color:var(--vio);background:var(--vio-tint);border-radius:7px;padding:4px 9px}
.mtag.off{color:var(--ink-4);background:rgba(255,255,255,0.04)}
.mtag.acc{color:var(--ink-3);background:rgba(255,255,255,0.04)}

/* modal */
.mmask{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:24px;background:rgba(6,6,10,.72);backdrop-filter:blur(4px);animation:mfade .16s ease-out}
@keyframes mfade{from{opacity:0}to{opacity:1}}
.mmodal{width:100%;max-width:520px;max-height:88vh;overflow-y:auto;padding:22px 24px;border-radius:18px;background:#16161f;border:1px solid var(--hair-2);box-shadow:0 30px 70px rgba(0,0,0,.6)}
.mmodal__h{display:flex;align-items:center;gap:11px;margin-bottom:18px}
.mmodal__h h4{margin:0;font-size:16px;font-weight:700;letter-spacing:-0.02em}
.mmodal__h .mi{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;color:var(--vio);background:var(--vio-tint)}
.mmodal__h .mi svg{width:16px;height:16px}
.mmodal__h .sp{flex:1}
.mmodal__f{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:22px}
.mlbl2{font-size:12.5px;font-weight:600;color:var(--ink-2);margin:16px 0 8px}
.mlbl2:first-of-type{margin-top:0}
.mhint{font-size:11.5px;color:var(--ink-4);line-height:1.5;margin:9px 0 0}

/* footer */
.ffoot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:28px;padding-top:22px;border-top:1px solid var(--hair)}
.ffoot .sp{flex:1}
