/* © 2026 Margaux Minodier — Studio Routine. Logiciel libre sous licence GNU GPL v3 ou plus récente (voir COPYING). Le nom FondFont, son titre et son identité visuelle sont réservés. */
 :root{--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .42 0 0 0 0 .39 0 0 0 0 .34 0 0 0 .55 -.12'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--bg:#F7F6F3;--fg:#2A2A2D;--muted:#66666B;--panel:#FFFFFF;--dark:#38383C;--red:#C8402A;--ochre:#D9A441;--green:#2E7D5B;--line:#D2D0CA;--hi:#FFFFFF;--plate:#EDEBE6;--accent:#38383C;--guide:#A9A8A4;--ghost:#C9C7C2;--sh-d:rgba(92,90,86,.27);--sh-l:rgba(255,255,255,1);--up:4px 4px 10px var(--sh-d),-4px -4px 10px var(--sh-l);--up-s:2px 2px 5px var(--sh-d),-2px -2px 5px var(--sh-l);--down:inset 3px 3px 7px var(--sh-d),inset -3px -3px 7px var(--sh-l);--down-s:inset 2px 2px 4px var(--sh-d),inset -2px -2px 4px var(--sh-l);--edge:1px solid rgba(42,42,45,.12);--serif:'EB Garamond',Georgia,'Times New Roman',serif;--apl:'DotGothic16','VT323','APL386',ui-monospace,Menlo,Consolas,monospace;--mono:ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;--over:250px;color-scheme:light;}*{box-sizing:border-box;border-radius:0}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--fg);font:400 19px/1.3 var(--serif);overflow:hidden}button,input,select{font-family:inherit;color:inherit}[hidden]{display:none!important}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.sc{font-weight:600;font-variant-caps:all-small-caps;letter-spacing:.07em}.it{font-style:italic;color:var(--muted)}@font-face{font-family:'EB Garamond';font-style:normal;font-weight:400;src:url(../fonts/eb-garamond-latin-400-normal.woff2) format('woff2');font-display:swap}@font-face{font-family:'EB Garamond';font-style:normal;font-weight:500;src:url(../fonts/eb-garamond-latin-500-normal.woff2) format('woff2');font-display:swap}@font-face{font-family:'EB Garamond';font-style:normal;font-weight:600;src:url(../fonts/eb-garamond-latin-600-normal.woff2) format('woff2');font-display:swap}@font-face{font-family:'EB Garamond';font-style:normal;font-weight:700;src:url(../fonts/eb-garamond-latin-700-normal.woff2) format('woff2');font-display:swap}@font-face{font-family:'EB Garamond';font-style:italic;font-weight:400;src:url(../fonts/eb-garamond-latin-400-italic.woff2) format('woff2');font-display:swap}@font-face{font-family:'EB Garamond';font-style:italic;font-weight:500;src:url(../fonts/eb-garamond-latin-500-italic.woff2) format('woff2');font-display:swap}@font-face{font-family:'DotGothic16';src:url(../fonts/DotGothic16-Regular.woff) format('woff');font-display:swap}@font-face{font-family:'VT323';src:url(../fonts/VT323-Regular.woff) format('woff');font-display:swap}@font-face{font-family:'APL386';src:url(../fonts/APL386.ttf) format('truetype');font-display:swap}.app{height:100vh;height:100dvh;min-height:620px;padding:0;display:flex}.frame{flex:1;min-width:0}.inner{height:100%;padding:10px 12px;display:flex;flex-direction:column}.rule{flex:none;height:2px;margin:8px 0 12px;border-top:1px solid var(--line);border-bottom:1px solid var(--hi)}.hair{flex:1;height:2px;border-top:1px solid var(--line);border-bottom:1px solid var(--hi)}.top{flex:none;height:52px;display:flex;align-items:center;gap:22px}@font-face{font-family:'Garamondt';src:url(../fonts/Garamondt-Regular.woff) format('woff');font-display:swap}.brand{font:400 38px/1 'Garamondt',var(--serif);text-transform:uppercase;letter-spacing:.06em}.prog{flex:1;max-width:560px;margin:0 auto;display:flex;align-items:center;gap:14px}.bar{flex:1;height:16px;background:var(--bg);box-shadow:var(--down-s);border:var(--edge);padding:2px}.bar>i{display:block;height:100%;width:0;background:var(--dark);transition:width .25s}.prog span{white-space:nowrap}.tools{display:flex;gap:10px;align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:0 13px;border:1px solid rgba(42,42,45,.2);background:var(--bg);box-shadow:var(--up);font-size:15px;font-weight:600;font-variant-caps:all-small-caps;letter-spacing:.07em;cursor:pointer;color:var(--fg)}.btn:hover{border-color:rgba(42,42,45,.4)}.btn:active,.btn.on,.btn[aria-pressed="true"],.btn[aria-selected="true"]{box-shadow:var(--down);color:var(--dark)}.btn.pri{background:var(--dark);color:#fff;border-color:rgba(0,0,0,.35)}.btn.pri:active{box-shadow:inset 3px 3px 7px rgba(0,0,0,.45);color:#fff}.btn.sq{width:36px;padding:0}.btn.s{min-height:32px;padding:0 10px;font-size:14px}.btn.g{flex:1 1 0}.btn.dash{background:transparent;box-shadow:none;border:1px dashed rgba(42,42,45,.55)}.btn:focus-visible,.tile:focus-visible,.sw:focus-visible,.chk:focus-visible,.rng:focus-visible,input:focus-visible,.topic:focus-visible{outline:2px solid var(--dark);outline-offset:2px}.btn svg{flex:none}.cols{flex:1;min-height:0;display:flex;gap:18px}.col{display:flex;flex-direction:column;min-height:0}.casse{flex:none;width:330px}.side{flex:none;width:360px}.mid{flex:1 1 0;min-width:0;align-items:center;overflow-y:auto}.mid-in{width:min(100%,max(560px,calc((100vh - var(--over)) * .9041 + 16px)));width:min(100%,max(560px,calc((100dvh - var(--over)) * .9041 + 16px)));display:flex;flex-direction:column;gap:12px}.ph{flex:none;height:28px;display:flex;align-items:center;gap:10px;color:var(--dark);font-size:19px}.ph::before{content:"";width:10px;height:10px;background:var(--dark);flex:none}.ph h2{margin:0;font:inherit;white-space:nowrap}.well{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px;padding:12px;background:var(--bg);box-shadow:var(--down);border:var(--edge)}.search{flex:none;display:flex;align-items:center;gap:10px;min-height:38px;padding:0 4px;border-bottom:1px solid var(--line);box-shadow:0 1px 0 var(--hi)}.search input{flex:1;min-width:0;border:0;background:transparent;font-size:19px;outline:none}.search input::placeholder{color:var(--muted);font-style:italic}.filters{flex:none;display:flex;gap:10px}.list{flex:1;min-height:0;overflow-y:auto;padding:4px 6px 8px 4px;display:flex;flex-direction:column;gap:16px}.list::-webkit-scrollbar,.card::-webkit-scrollbar{width:12px}.list::-webkit-scrollbar-track,.card::-webkit-scrollbar-track{background:transparent}.list::-webkit-scrollbar-thumb,.card::-webkit-scrollbar-thumb{background:#D4D1CA;border:2px solid var(--bg);box-shadow:inset 1px 1px 0 #fff}.gh{display:flex;align-items:center;gap:10px;margin:0 2px 8px;font-size:20px}.gh i{width:10px;height:10px;background:var(--gc);flex:none}.gh h3{margin:0;font:inherit}.gh .cnt{font-size:18px}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.tile{position:relative;height:76px;padding:0 0 8px;border:var(--edge);background:var(--plate);box-shadow:var(--down-s);font:400 34px/1 var(--apl);color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center}.tile.todo{background:var(--bg);box-shadow:var(--up);color:var(--fg)}.tile.sel{background:var(--dark);color:#fff;box-shadow:inset 2px 2px 5px rgba(0,0,0,.5)}.pips{position:absolute;left:0;right:0;bottom:7px;display:flex;justify-content:center;gap:4px}.pip{width:7px;height:7px;border:1px solid currentColor;opacity:.55}.pip.f{background:currentColor;opacity:1}.empty{margin:6px 0;color:var(--muted);font-style:italic}.ctlrow{flex:none;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px}.mid-in>.ctlrow{align-self:center;width:min(100%,calc((100vh - var(--over)) * .9041 + 16px));width:min(100%,calc((100dvh - var(--over)) * .9041 + 16px))}.vrow{justify-content:flex-start}.grp{display:flex;align-items:center;gap:8px}.vts{display:flex;gap:6px}.btn.sq.s{width:34px;min-height:34px;padding:0}.btn{white-space:nowrap}.plate{flex:none;align-self:center;width:min(100%,calc((100vh - var(--over)) * .9041 + 16px));width:min(100%,calc((100dvh - var(--over)) * .9041 + 16px));padding:8px;background:var(--bg);border:var(--edge);box-shadow:var(--up)}.plate canvas{display:block;width:100%;height:auto;aspect-ratio:622/688;cursor:crosshair;touch-action:none}.card{flex:1;min-height:0;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:14px;background:var(--bg);border:var(--edge);box-shadow:var(--up)}.sec{display:flex;flex-direction:column;gap:10px}.sec>h2{margin:0;font-size:24px}.sec p{margin:0}.note{font-size:17px;line-height:1.3;font-style:italic;color:var(--muted)}.fld{display:flex;flex-direction:column;gap:2px}.fld .lab{display:flex;justify-content:space-between;align-items:baseline}.row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px}.field{min-height:42px;width:100%;padding:0 10px;border:2px solid;border-color:var(--line) var(--hi) var(--hi) var(--line);background:#fff;box-shadow:inset 2px 2px 4px var(--sh-d);font-size:21px;outline:none}.status{display:flex;align-items:center;gap:10px;font-style:italic}.status i{width:14px;height:14px;background:var(--bg);box-shadow:var(--down-s);border:1px solid rgba(42,42,45,.35)}.status.on i{background:var(--green);box-shadow:none;border-color:var(--green)}.padbox{display:flex;flex-direction:column;gap:12px;padding:12px;background:var(--bg);box-shadow:var(--down)}.padqr{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.qrbox{width:150px;height:150px;background:#fff;padding:8px;box-shadow:inset 2px 2px 5px var(--sh-d);flex:none}.qrbox svg{width:100%;height:100%;display:block}.padlink{display:flex;gap:10px}.wrow{display:flex;align-items:center;gap:12px;min-height:50px;padding:0 6px;cursor:pointer}.wrow.on{background:var(--bg);box-shadow:var(--down-s)}.wrow .nm{flex:1}.wrow svg{flex:none}.sample{background:#fff;padding:4px 10px;box-shadow:inset 2px 2px 4px var(--sh-d);border:2px solid;border-color:var(--line) var(--hi) var(--hi) var(--line);overflow:hidden;min-height:40px}.rng{-webkit-appearance:none;appearance:none;width:100%;height:12px;background-color:var(--plate);background-image:linear-gradient(90deg,rgba(42,42,45,.35) 1px,transparent 1px);background-size:10% 4px;background-repeat:repeat-x;background-position:0 100%;border:1px solid rgba(42,42,45,.2);box-shadow:inset 2px 2px 4px var(--sh-d);outline:none;margin:10px 0}.rng::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:32px;background:linear-gradient(90deg,transparent calc(50% - 4px),rgba(42,42,45,.4) 0 calc(50% - 3px),transparent 0 calc(50% - .5px),rgba(42,42,45,.4) 0 calc(50% + .5px),transparent 0 calc(50% + 3px),rgba(42,42,45,.4) 0 calc(50% + 4px),transparent 0),var(--bg);border:1px solid rgba(42,42,45,.4);box-shadow:var(--up-s);cursor:pointer}.rng::-moz-range-thumb{width:18px;height:30px;background:linear-gradient(90deg,transparent calc(50% - 4px),rgba(42,42,45,.4) 0 calc(50% - 3px),transparent 0 calc(50% - .5px),rgba(42,42,45,.4) 0 calc(50% + .5px),transparent 0 calc(50% + 3px),rgba(42,42,45,.4) 0 calc(50% + 4px),transparent 0),var(--bg);border:1px solid rgba(42,42,45,.4);box-shadow:var(--up-s);cursor:pointer;border-radius:0}.rng:active::-webkit-slider-thumb{box-shadow:var(--down-s)}.rng:active::-moz-range-thumb{box-shadow:var(--down-s)}.rng:focus-visible::-webkit-slider-thumb{outline:2px solid var(--dark);outline-offset:2px}.sw{-webkit-appearance:none;appearance:none;position:relative;width:88px;height:32px;margin:0;flex:none;cursor:pointer;background:var(--plate);border:1px solid rgba(42,42,45,.25);box-shadow:inset 2px 2px 5px var(--sh-d)}.sw::before{content:"OFF";position:absolute;right:9px;top:0;line-height:30px;color:var(--muted);font:700 13px/30px var(--serif);letter-spacing:.12em}.sw::after{content:"";position:absolute;top:2px;left:2px;width:30px;height:26px;background:linear-gradient(90deg,transparent 8px,rgba(42,42,45,.4) 8px 9px,transparent 9px 12px,rgba(42,42,45,.4) 12px 13px,transparent 13px 16px,rgba(42,42,45,.4) 16px 17px,transparent 17px),var(--bg);border:1px solid rgba(42,42,45,.35);box-shadow:var(--up-s);transition:left .12s}.sw:checked{background:var(--dark);border-color:var(--fg);box-shadow:inset 2px 2px 5px rgba(0,0,0,.4)}.sw:checked::before{content:"ON";right:auto;left:10px;color:#fff}.sw:checked::after{left:54px}.chk{-webkit-appearance:none;appearance:none;position:relative;width:24px;height:24px;margin:0;flex:none;cursor:pointer;background:#fff;border:1px solid rgba(42,42,45,.3);box-shadow:inset 2px 2px 3px var(--sh-d)}.chk:checked::after{content:"";position:absolute;left:7px;top:1px;width:7px;height:14px;border:solid var(--green);border-width:0 3px 3px 0;transform:rotate(45deg)}.ov{position:fixed;inset:0;z-index:50;background:rgba(42,42,45,.38);display:flex;align-items:center;justify-content:center;padding:24px}.win{width:1000px;max-width:100%;max-height:100%;display:flex;flex-direction:column;background:var(--bg);border:1px solid rgba(42,42,45,.35);box-shadow:14px 14px 34px rgba(42,42,45,.35),-6px -6px 20px rgba(255,255,255,.5)}.win.small{width:640px}.wt{flex:none;height:34px;display:flex;align-items:center;gap:10px;padding:0 0 0 12px;background:var(--dark);color:#fff;font-size:20px}.wt h2{margin:0;font:inherit;flex:1}.wt button{width:40px;height:34px;border:0;background:transparent;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.wt button:hover{background:rgba(255,255,255,.16)}.wtool{flex:none;display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--line);box-shadow:0 1px 0 var(--hi)}.wtool label{display:flex;align-items:center;gap:10px}.wtool .field{width:230px}.wtool .rng{width:110px}.wbody{flex:1;min-height:0;overflow:auto;margin:12px 14px;background:#fff;border:2px solid;border-color:var(--line) var(--hi) var(--hi) var(--line);box-shadow:inset 3px 3px 8px var(--sh-d);padding:10px 16px}.wstat{flex:none;display:flex;gap:4px;padding:0 14px 12px}.wstat div{flex:1;min-height:28px;display:flex;align-items:center;padding:0 10px;background:var(--bg);box-shadow:var(--down-s);font-size:17px}.seg{display:flex;gap:6px}.help{display:flex;gap:12px;flex:1;min-height:0;padding:12px 14px}.topics{flex:none;width:270px;background:#fff;box-shadow:inset 2px 2px 5px var(--sh-d);border:2px solid;border-color:var(--line) var(--hi) var(--hi) var(--line);padding:6px 0;overflow-y:auto}.topic{display:block;width:100%;text-align:left;border:0;background:transparent;padding:6px 12px;font-size:19px;cursor:pointer}.topic[aria-current="true"]{background:var(--dark);color:#fff}.hcontent{flex:1;min-width:0;overflow-y:auto;background:#fff;box-shadow:inset 2px 2px 5px var(--sh-d);border:2px solid;border-color:var(--line) var(--hi) var(--hi) var(--line);padding:18px 26px}.hcontent h1{margin:0 0 6px;font-weight:600;font-size:36px}.hcontent p{margin:0 0 12px;font-size:20px;line-height:1.35}.hcontent ol{margin:0 0 12px;padding-left:26px;font-size:20px;line-height:1.35}.hcontent li{margin-bottom:8px}.tip{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;background:var(--bg);box-shadow:var(--up-s);border:var(--edge);margin-top:14px}.tip b{flex:none;width:22px;height:22px;background:var(--ochre);display:flex;align-items:center;justify-content:center;font-size:16px}.tip p{margin:0;font-size:19px}.dlg-body{padding:16px 18px;display:flex;flex-direction:column;gap:12px}.dlg-body p,.dlg-body ol{margin:0;font-size:20px;line-height:1.35}.dlg-body ol{padding-left:24px}code,.code{font:500 15px/1.4 var(--mono);background:var(--plate);padding:2px 6px}pre.code{display:block;margin:6px 0 0;padding:10px 12px;overflow:auto}.dlg-act{display:flex;gap:12px;justify-content:flex-end;padding:0 18px 16px}@media (max-width:1400px){.casse{width:290px}.side{width:320px}}@media (max-width:1100px){body{overflow:auto}.app{height:auto}.cols{flex-direction:column}.casse,.side{width:auto}.list{max-height:360px}.mid-in,.plate{width:100%}}