/* Audit espci.org — charte ESPCI Paris Alumni */
:root{--navy:#152439;--blue:#2E5C8A;--sky:#6FADD3;--gold:#B8862B;--red:#B23A48;--green:#3A7D5C;--violet:#6C5B9E;--amber:#D9A441;
--paper:#F2F4F7;--ink:#152439;--ink-2:#4b5565;--ink-3:#7B8794;--line:#D9DEE5;--panel:#fff;--panel-2:#E9EDF2;
--accent:#2E5C8A;--accent-soft:#DCEAF5;--ok:#3A7D5C;--ok-soft:#DCEFE3;--warn:#B8862B;--warn-soft:#F6E8CF;--crit:#B23A48;--crit-soft:#F7DFDC;
--fill:#FFF3C4;--fill-line:#D9A441;--fill-ink:#5C4300;--todo:#6C5B9E;--todo-soft:#EBE2F3;
--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--sans:Calibri,"Segoe UI",system-ui,-apple-system,Arial,sans-serif;--display:Cambria,Georgia,"Times New Roman",serif;--barh:58px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55}
a{color:var(--accent)}code{font-family:var(--mono);font-size:.84em;background:var(--panel-2);padding:.1em .35em;border-radius:3px;word-break:break-all}
pre{background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:.8rem 1rem;overflow-x:auto;font-family:var(--mono);font-size:.82rem}
h1,h2,h3,h4{font-family:var(--display);line-height:1.15;margin:0;color:var(--navy)}
h1{font-size:2rem;font-weight:700;margin:.2rem 0 .6rem}h2{font-size:1.4rem;font-weight:600;margin-top:2.2rem;padding-top:.8rem;border-top:2px solid var(--navy)}
h3{font-size:1.1rem;font-weight:700;margin-top:1.4rem}h4{font-size:1rem;margin-top:1rem}
p{margin:.6rem 0}.lead{font-size:1.08rem;color:var(--ink-2);max-width:62rem}.muted{color:var(--ink-3)}.small{font-size:.85rem}.err{color:var(--crit);font-weight:600}
[id]{scroll-margin-top:calc(var(--barh) + 12px)}
/* layout */
.sitebar{position:sticky;top:0;z-index:50;background:var(--navy);color:#fff;height:var(--barh);box-shadow:0 2px 8px rgba(21,36,57,.25)}
.sitebar .in{max-width:1320px;margin:0 auto;padding:0 1rem;height:100%;display:flex;align-items:center;gap:1.2rem}
.sitebar .brand{color:#fff;text-decoration:none;font-family:var(--display);font-weight:700;font-size:1.05rem;line-height:1.1;white-space:nowrap}.sitebar .brand small{display:block;font-family:var(--sans);font-weight:400;font-size:.68rem;color:#b9cde3}
.sitebar nav{display:flex;gap:.1rem;flex:1;overflow-x:auto}.sitebar nav a{color:#d6e3f0;text-decoration:none;padding:.45rem .7rem;border-radius:6px;font-size:.92rem;white-space:nowrap}.sitebar nav a:hover{background:rgba(255,255,255,.1)}.sitebar nav a.cur{background:var(--sky);color:var(--navy);font-weight:700}
.sitebar .right{display:flex;align-items:center;gap:.6rem}.sitebar .who{color:#fff;text-decoration:none;font-size:.9rem}.sitebar .who small{color:#b9cde3}
.sitebar .btn{background:transparent;color:#d6e3f0;border-color:#4b6a8f}
main{max-width:980px;margin:0 auto;padding:1.4rem 1rem 3rem;display:flex;gap:2rem;align-items:flex-start}main.wide{max-width:1320px}
main .content{flex:1;min-width:0}
nav.toc{position:sticky;top:calc(var(--barh) + 14px);width:230px;flex:none;max-height:calc(100vh - var(--barh) - 30px);overflow:auto;font-size:.85rem;border-right:1px solid var(--line);padding-right:.8rem}
nav.toc:empty{display:none}nav.toc a{display:block;color:var(--ink-2);text-decoration:none;padding:.2rem 0}nav.toc a.l3{padding-left:.9rem;color:var(--ink-3)}nav.toc a:hover,nav.toc a.on{color:var(--accent);font-weight:600}
footer{text-align:center;color:var(--ink-3);font-size:.82rem;padding:1.5rem 1rem 2.5rem}
.crumbs{color:var(--ink-3);font-size:.88rem;margin:0}.crumbs a{color:var(--ink-3)}
/* components */
.btn{display:inline-block;border:1px solid var(--line);background:#fff;color:var(--ink);padding:.42rem .85rem;border-radius:6px;font:inherit;font-size:.9rem;cursor:pointer;text-decoration:none;line-height:1.2}
.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.primary:hover{background:var(--navy);color:#fff}
.btn.small{padding:.25rem .6rem;font-size:.82rem}.btn.danger{color:var(--crit)}.btn.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
button.link{background:none;border:0;color:var(--accent);cursor:pointer;font:inherit;font-size:.85rem;padding:0}
input,select,textarea{font:inherit;font-size:.92rem;padding:.4rem .55rem;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);max-width:100%}textarea{width:100%;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--sky);outline-offset:1px;border-color:var(--accent)}
label{display:block;font-size:.9rem;color:var(--ink-2);margin:.5rem 0}label>input,label>select{display:block;margin-top:.2rem;width:100%}
form.row,.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.5rem 0}form.row label,.row label{margin:0;flex:1;min-width:10rem}form.row input,form.row select{width:auto}
form.stack{display:flex;flex-direction:column;gap:.45rem;margin:.5rem 0}form.inl,.inl{display:inline}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:1rem 1.2rem;margin:.8rem 0}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.9rem;margin:1rem 0}.cards .card{margin:0}
a.card.link{text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:.3rem;transition:transform .12s,box-shadow .12s}a.card.link:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(21,36,57,.12);border-color:var(--sky)}a.card.link b{color:var(--navy);font-family:var(--display);font-size:1.05rem}a.card.link span{color:var(--ink-2);font-size:.9rem}
.note{background:var(--fill);border-left:4px solid var(--fill-line);padding:.6rem .9rem;border-radius:6px;margin:.6rem 0;font-size:.93rem}.note.ok{background:var(--ok-soft);border-color:var(--ok)}
.tag{display:inline-block;font-size:.74rem;font-weight:700;padding:.12rem .5rem;border-radius:999px;background:var(--panel-2);color:var(--ink-2);text-transform:uppercase;letter-spacing:.03em;vertical-align:middle}
.tag.ok{background:var(--ok-soft);color:var(--ok)}.tag.warn{background:var(--warn-soft);color:var(--warn)}.tag.crit{background:var(--crit-soft);color:var(--crit)}
.chip{display:inline-block;font-size:.76rem;background:var(--accent-soft);color:var(--accent);padding:.1rem .5rem;border-radius:999px}
.tw{overflow-x:auto;margin:.6rem 0}table{border-collapse:collapse;width:100%;font-size:.9rem;background:#fff}th,td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}th{background:var(--panel-2);font-weight:700;color:var(--navy);font-size:.82rem;text-transform:uppercase;letter-spacing:.03em}
td.k,.k{font-family:var(--mono);font-size:.82rem;color:var(--ink-2);white-space:nowrap}
ul.plain{list-style:none;padding:0;margin:.4rem 0}ul.plain li{padding:.25rem 0;border-bottom:1px dashed var(--line)}
.fillval{background:var(--fill);color:var(--fill-ink);border-bottom:2px solid var(--fill-line);padding:0 .3rem;border-radius:3px;text-decoration:none;font-size:.9em}.fillval.done{background:var(--ok-soft);color:var(--ok);border-color:var(--ok)}
input.fill{background:var(--fill);border-color:var(--fill-line);min-width:14rem}
a.gl{color:inherit;text-decoration:none;border-bottom:1px dotted var(--accent);cursor:help}a.gl:hover{color:var(--accent)}
.lg{display:inline-block;padding:0 .4rem;border-radius:4px;border:1.6px solid;font-size:.85em}.lg.obs{border-color:var(--green)}.lg.doc{border-color:var(--blue)}.lg.hyp{border-color:var(--gold);border-style:dashed}
.toast{position:fixed;bottom:1.2rem;left:50%;transform:translate(-50%,20px);background:var(--navy);color:#fff;padding:.6rem 1rem;border-radius:8px;opacity:0;transition:.25s;pointer-events:none;font-size:.9rem;z-index:99}.toast.show{opacity:1;transform:translate(-50%,0)}
/* login */
.login{max-width:420px;margin:3rem auto;background:#fff;border:1px solid var(--line);border-radius:12px;padding:2rem}.login .logo{font-family:var(--display);font-weight:700;color:var(--navy);font-size:1.3rem;letter-spacing:.02em}.login .logo span{color:var(--sky);font-size:.75rem;margin:0 .3rem;vertical-align:middle;letter-spacing:.2em}.login h1{font-size:1.4rem;margin:.5rem 0}
/* dashboard */
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.8rem;margin:1rem 0}@media (min-width:1150px){.kpis{grid-template-columns:2fr repeat(5,1fr)}}
.kpi{display:flex;align-items:center;gap:.7rem;background:#fff;border:1px solid var(--line);border-radius:10px;padding:.7rem .9rem;text-decoration:none;color:inherit}.kpi:hover{border-color:var(--sky)}.kpi b{display:block;font-size:1.1rem;color:var(--navy)}.kpi span{font-size:.8rem;color:var(--ink-2);display:block}
.kpi.big{grid-column:span 2;background:var(--navy);color:#fff;border:0}.kpi.big b,.kpi.big span{color:#fff}.kpi.big .ring{width:72px;height:72px}.kpi.big .ring circle:first-child{stroke:#3d5577}
.ring{width:48px;height:48px;flex:none;color:inherit}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem}@media (max-width:900px){.cols2{grid-template-columns:1fr}}
.bars{margin:.5rem 0}.bar{display:grid;grid-template-columns:minmax(120px,1.2fr) 3fr 2.5rem;gap:.6rem;align-items:center;font-size:.86rem;margin:.3rem 0}.bar .l{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar .v{text-align:right;color:var(--ink-3);font-family:var(--mono);font-size:.8rem}
.track{position:relative;display:block;height:10px;background:var(--panel-2);border-radius:5px;overflow:hidden}.track i{position:absolute;left:0;top:0;bottom:0;background:var(--ok);border-radius:5px}.track i.e{background:var(--amber)}.track.small{width:120px;display:inline-block;vertical-align:middle;height:7px}
.minis{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.6rem;margin:.6rem 0}.mini{background:#fff;border:1px solid var(--line);border-radius:8px;padding:.5rem .7rem;text-decoration:none;color:inherit}.mini b{display:block;font-size:1.3rem;color:var(--navy)}.mini span{font-size:.78rem;color:var(--ink-2)}
.card.status .m{font-size:.85rem;color:var(--ink-3)}.feed{list-style:none;padding:0;margin:0;font-size:.86rem}.feed li{padding:.3rem 0;border-bottom:1px dashed var(--line)}
/* audit */
.card.ses .m{font-size:.85rem;color:var(--ink-3)}.card.ses h3{margin-top:.2rem;font-size:1rem}.card.ses .note{font-size:.85rem}
details.dom{background:#fff;border:1px solid var(--line);border-radius:10px;margin:.6rem 0;padding:.4rem .9rem}details.dom>summary{cursor:pointer;padding:.4rem 0;font-size:1rem}
details.act{border-top:1px solid var(--line);padding:.3rem 0}details.act>summary{cursor:pointer;font-size:.92rem;padding:.3rem 0}.actbody{padding:.3rem 0 .6rem 1.6rem;font-size:.9rem}
table.hyps td{font-size:.88rem}
/* kanban */
.kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin:1rem 0}@media (max-width:1000px){.kanban{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.kanban{grid-template-columns:1fr}}
.kanban .col{background:var(--panel-2);border-radius:10px;padding:.6rem;min-height:200px}.kanban .col h3{font-size:.95rem;margin:.2rem .3rem .6rem;text-transform:uppercase;letter-spacing:.04em;font-family:var(--sans)}.kanban .col.over{outline:2px dashed var(--sky)}
.cards-col{display:flex;flex-direction:column;gap:.5rem;min-height:60px}
.task{background:#fff;border:1px solid var(--line);border-left:4px solid var(--sky);border-radius:8px;padding:.6rem .7rem;font-size:.9rem;cursor:grab}.task.dragging{opacity:.5}.task.prio-Haute{border-left-color:var(--red)}.task.prio-Basse{border-left-color:var(--ink-3)}
.task .t{font-weight:600}.task .d{color:var(--ink-2);font-size:.84rem;margin:.2rem 0}.task .m{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;font-size:.78rem;margin-top:.3rem}.task .prio{margin-left:auto;color:var(--ink-3)}
.task details.edit summary{font-size:.78rem;color:var(--accent);cursor:pointer;margin-top:.3rem}
/* proposals */
.card.prop{display:flex;gap:1rem}.card.prop .vote .btn{min-width:3.4rem;text-align:center}.card.prop .pb{flex:1;min-width:0}.card.prop .m{font-size:.84rem;color:var(--ink-3)}.card.prop h3{margin:.2rem 0}
/* comments */
.comments{margin-top:2.5rem;border-top:1px solid var(--line);padding-top:.8rem}.comments h3{font-size:1rem;margin-top:0}
.comments .c{display:flex;gap:.6rem;padding:.5rem 0;border-bottom:1px dashed var(--line);font-size:.92rem}.comments .av{flex:none;width:30px;height:30px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}.comments .m{font-size:.82rem;color:var(--ink-3)}.comments .t p{margin:.2rem 0}
.comment-form{display:flex;gap:.5rem;align-items:flex-start;margin-top:.7rem}.comment-form textarea{flex:1}
/* documents */
ul.docs{list-style:none;padding:0;margin:.4rem 0}ul.docs.sub{padding-left:1.4rem}ul.docs li{display:flex;gap:.6rem;align-items:flex-start;padding:.35rem 0;border-bottom:1px dashed var(--line)}ul.docs li.folder{display:block;border:0}ul.docs summary{cursor:pointer;padding:.3rem 0;font-weight:600}
.ext{flex:none;font-family:var(--mono);font-size:.68rem;font-weight:700;text-transform:uppercase;padding:.15rem .4rem;border-radius:4px;background:var(--panel-2);color:var(--ink-2);min-width:3.2rem;text-align:center;margin-top:.15rem}.ext.pdf{background:#F7DFDC;color:#A6362B}.ext.docx{background:#DCEAF5;color:#2E5C8A}.ext.xlsx{background:#DCEFE3;color:#2C6E49}.ext.pptx{background:#F6E8CF;color:#9A6212}.ext.drawio{background:#EBE2F3;color:#6C5B9E}
.backbar{margin:.5rem 0}a.back{font-size:.85rem;text-decoration:none}.glidx{display:flex;flex-wrap:wrap;gap:.3rem;margin:.8rem 0}.glidx a{display:inline-block;min-width:1.9rem;text-align:center;padding:.2rem .4rem;border:1px solid var(--line);border-radius:6px;text-decoration:none;background:#fff}
dl.glossaire dt{font-weight:700;margin-top:.9rem;color:var(--navy)}dl.glossaire dt:target{background:var(--fill);padding:.1rem .3rem;border-radius:4px}dl.glossaire dd{margin:.2rem 0 0 0;color:var(--ink-2)}dl.glossaire .where{display:block;font-size:.82rem;color:var(--ink-3);margin-top:.15rem}
.report{background:#fff;border:1px solid var(--line);border-radius:12px;padding:1.5rem 2rem}@media (max-width:700px){.report{padding:1rem}}
/* architecture course */
.levels{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin:1rem 0}.levels.small{grid-template-columns:repeat(3,minmax(0,160px))}
.lvl{display:block;text-decoration:none;color:inherit;background:#fff;border:2px solid var(--line);border-radius:10px;padding:.7rem .9rem}.lvl b{display:block;color:var(--navy);font-family:var(--display);font-size:1.05rem}.lvl span{font-size:.84rem;color:var(--ink-2)}.lvl.cur{border-color:var(--blue);background:var(--accent-soft)}.levels.small .lvl{padding:.4rem .7rem;text-align:center}.levels.small .lvl b{font-size:.95rem}
ol.lessons{list-style:none;padding:0;margin:1rem 0;counter-reset:l}ol.lessons li{margin:.5rem 0}ol.lessons a{display:flex;align-items:center;gap:.9rem;background:#fff;border:1px solid var(--line);border-radius:10px;padding:.7rem 1rem;text-decoration:none;color:inherit}ol.lessons a:hover{border-color:var(--sky)}
ol.lessons .n{flex:none;width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-family:var(--display)}ol.lessons li.done .n{background:var(--green)}ol.lessons b{flex:1;color:var(--navy)}ol.lessons small{color:var(--ink-3)}
.lesson{display:grid;grid-template-columns:1fr 300px;gap:1rem;margin:1rem 0;align-items:start}@media (max-width:1000px){.lesson{grid-template-columns:1fr}}
.dwrap{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.dtools{display:flex;gap:.4rem;align-items:center;padding:.5rem .7rem;border-bottom:1px solid var(--line);background:var(--panel-2);flex-wrap:wrap}.dscroll{overflow:auto}.dzoom{transform-origin:0 0;transition:transform .15s}
svg.diagram{display:block;width:100%;height:auto;min-width:640px}svg.diagram .node{cursor:pointer}svg.diagram .node:hover rect,svg.diagram .node:focus rect,svg.diagram .node:hover circle{stroke-width:3;filter:none}svg.diagram .node.sel rect,svg.diagram .node.sel circle{stroke:var(--red);stroke-width:3}svg.diagram .node:focus{outline:none}
.panel{position:sticky;top:calc(var(--barh) + 14px);background:#fff;border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;font-size:.92rem}.panel h3{margin-top:0;font-size:1rem}.panel .st{font-size:.78rem}.panel p{color:var(--ink-2)}
.course{max-width:62rem}.course p{font-size:1.02rem}.retenir{background:var(--accent-soft);border-left:4px solid var(--blue);border-radius:8px;padding:.8rem 1.1rem;margin:1.2rem 0}.retenir h3,.links h3{margin-top:0;font-size:1rem}.retenir ul{margin:.3rem 0;padding-left:1.2rem}
.links{background:#fff;border:1px solid var(--line);border-radius:8px;padding:.8rem 1.1rem}.links ul{margin:.3rem 0;padding-left:1.2rem}
.pager{display:flex;justify-content:space-between;gap:1rem;margin:1.6rem 0;font-size:.95rem}.pager a{text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:8px;padding:.6rem .9rem}.pager a:hover{border-color:var(--sky)}
/* survey */
.survey .q{background:#fff;border:1px solid var(--line);border-radius:10px;padding:.8rem 1rem;margin:.6rem 0}.survey .ql{font-weight:600;color:var(--navy);display:flex;gap:.6rem;align-items:flex-start;margin:0 0 .4rem}.survey .ql .n{flex:none;background:var(--navy);color:#fff;border-radius:50%;width:22px;height:22px;font-size:.78rem;display:flex;align-items:center;justify-content:center}
.opts label{display:block;margin:.2rem 0;font-size:.92rem;color:var(--ink)}.opts input{margin-right:.4rem}
.scale{display:flex;gap:.4rem}.scale label{margin:0}.scale input{display:none}.scale span{display:inline-block;width:38px;height:38px;line-height:36px;text-align:center;border:1px solid var(--line);border-radius:8px;cursor:pointer;background:#fff}.scale input:checked+span{background:var(--blue);color:#fff;border-color:var(--blue)}
@media (max-width:800px){.sitebar .brand small{display:none}main{padding:1rem .8rem}h1{font-size:1.6rem}nav.toc{display:none}.kpi.big{grid-column:span 1}.levels{grid-template-columns:1fr}}
@media print{.sitebar,footer,.comments,.dtools,nav.toc,.pager,.levels{display:none}main{max-width:none;padding:0}.report{border:0;padding:0}}
.report a{color:var(--accent)}
.report code{font-family:var(--mono);font-size:.84em;background:var(--panel-2);padding:.1em .35em;border-radius:3px;word-break:break-all}
.report .mono{font-family:var(--mono);font-size:.84em}
.report pre{background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:.8rem 1rem;overflow-x:auto;font-family:var(--mono);font-size:.82rem;line-height:1.5;margin:.6rem 0}
.report h1,.report h2,.report h3,.report h4{font-family:var(--display);line-height:1.15;margin:0}
.report h1{font-size:2rem;font-weight:700;letter-spacing:-.01em}
.report h2{font-size:1.45rem;font-weight:600;margin-top:3rem;padding-top:1rem;border-top:2px solid var(--ink)}
.report h2 .num{font-family:var(--mono);font-size:.85rem;color:var(--ink-3);font-weight:400;margin-right:.6rem}
.report h3{font-size:1.1rem;font-weight:600;margin-top:1.8rem}
.report h4{font-size:.95rem;font-weight:600;margin-top:1.2rem}
.report h2 strong,.report h3 strong{font-weight:inherit}
.report p{margin:.7rem 0;max-width:72ch}
.report ul,.report ol{max-width:72ch;padding-left:1.4rem}
.report li{margin:.3rem 0}
.report .eyebrow{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
.report /* site bar */
.sitebar{background:var(--ink);color:#fff;position:sticky;top:0;z-index:20;box-shadow:0 1px 0 rgba(0,0,0,.2)}
.report /* layout */
.wrap{display:grid;grid-template-columns:240px minmax(0,1fr);gap:3rem;max-width:1240px;margin:0 auto;padding:2.5rem 1.5rem 6rem}
.report header.top{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.5rem}
.report .meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem 1.5rem;font-size:.88rem;color:var(--ink-2);border:1px solid var(--line);background:var(--panel);padding:.9rem 1rem;border-radius:4px}
.report .meta b{color:var(--ink);font-weight:600;display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
.report .meta span b{display:inline;font-size:inherit;letter-spacing:0;text-transform:none}
.report .front{max-width:72ch}
.report p.front:first-of-type{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.report .tag,.report .lvl,.report .verdict{display:inline-block;padding:.1em .55em;border-radius:3px;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600;vertical-align:middle;white-space:nowrap}
.report .t-ok,.report .v-yes{background:var(--ok-soft);color:var(--ok)}
.report .t-doc,.report .l-int{background:var(--accent-soft);color:var(--accent)}
.report .t-warn,.report .l-conf,.report .v-part{background:var(--warn-soft);color:var(--warn)}
.report .t-crit,.report .l-res,.report .v-no{background:var(--crit-soft);color:var(--crit)}
.report .t-fill{background:var(--fill);color:var(--fill-ink);border:1px dashed var(--fill-line)}
.report .t-hyp,.report .t-todo{background:var(--todo-soft);color:var(--todo);border:1px dashed var(--todo)}
.report .l-pub{background:var(--panel-2);color:var(--ink-2)}
.report .legend{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;margin:1rem 0;font-size:.82rem;align-items:center}
.report .fillval{display:inline-block;background:var(--fill);border:1px dashed var(--fill-line);color:var(--fill-ink);padding:.15rem .5rem;border-radius:3px;font-style:italic;font-size:.88rem}
.report .tw{overflow-x:auto;margin:1rem 0}
.report table{border-collapse:collapse;width:100%;font-size:.9rem;min-width:560px}
.report th,.report td{text-align:left;padding:.5rem .65rem;border-bottom:1px solid var(--line);vertical-align:top}
.report th{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);font-weight:600;background:var(--panel-2)}
.report tr.fillrow td{background:#FFFBEA}
.report td.k{font-weight:600;white-space:nowrap}
.report .kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.6rem;margin:1rem 0}
.report .kpi{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:.7rem .9rem}
.report .kpi b{font-size:1.5rem;display:block;line-height:1.1}
.report .kpi span{font-size:.8rem;color:var(--ink-2)}
.report .kpi.c b{color:var(--crit)}
.report .kpi.w b{color:var(--warn)}
.report .kpi.o b{color:var(--ok)}
.report .kpi.f b{color:var(--fill-line)}
.report .note{border-left:3px solid var(--warn);background:var(--warn-soft);padding:.7rem 1rem;border-radius:0 4px 4px 0;margin:1rem 0;max-width:74ch}
.report .note.info{border-left-color:var(--accent);background:var(--accent-soft)}
.report .note.crit{border-left-color:var(--crit);background:var(--crit-soft)}
.report figure{margin:1.4rem 0;padding:1rem;background:var(--panel);border:1px solid var(--line);border-radius:4px;overflow-x:auto}
.report figure svg{max-width:100%;height:auto;display:block;color:var(--ink)}
.report figcaption{font-size:.85rem;color:var(--ink-2);margin-top:.6rem;max-width:80ch}
.report .steps{list-style:none;margin:1rem 0;padding:0;display:grid;gap:.5rem;counter-reset:step;max-width:none}
.report .steps li{counter-increment:step;display:block;position:relative;padding:.6rem .9rem .6rem 3rem;background:var(--panel);border:1px solid var(--line);border-radius:4px;max-width:none}
.report .steps li::before{content:counter(step);position:absolute;left:.9rem;top:.6rem;font-weight:700;color:var(--accent)}
.report .steps li>*{min-width:0;max-width:72ch}
.report .steps li span{display:block}
.report .imp,.report .answer{display:grid;grid-template-columns:2.4rem minmax(0,1fr);gap:.8rem;padding:.9rem 1rem;background:var(--panel);border:1px solid var(--line);border-radius:4px;margin:.6rem 0}
.report .imp .p,.report .answer .q{font-weight:700;font-size:1rem;text-align:center;border-radius:3px;padding:.2rem 0;height:fit-content}
.report .imp .p.c{background:var(--crit-soft);color:var(--crit)}
.report .imp .p.w{background:var(--warn-soft);color:var(--warn)}
.report .imp .p.o{background:var(--ok-soft);color:var(--ok)}
.report .answer .q{color:var(--accent);font-size:1.1rem}
.report .imp h4,.report .answer h4{margin:0 0 .3rem}
.report .answer p{margin:.3rem 0}
.report .imp dl{display:grid;grid-template-columns:130px minmax(0,1fr);gap:.25rem .8rem;margin:.4rem 0 0;font-size:.9rem}
.report .imp dt{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:600;padding-top:.15rem}
.report .imp dd{margin:0;max-width:72ch}
.report .tiers{display:grid;gap:.5rem;margin:1.2rem 0}
.report .tier{display:grid;grid-template-columns:150px minmax(0,1fr);border:1px solid var(--line);background:var(--panel);border-radius:4px;overflow:hidden}
.report .tier>.lbl{padding:.9rem 1rem;background:var(--panel-2);border-right:1px solid var(--line)}
.report .tier>.lbl .n{font-family:var(--mono);font-size:.72rem;color:var(--ink-3)}
.report .tier>.lbl .t{font-weight:600;font-size:.95rem;display:block;margin-top:.15rem}
.report .tier>.lbl .s{font-size:.78rem;color:var(--ink-2);display:block;margin-top:.3rem;line-height:1.35}
.report .tier>.body{padding:.75rem .9rem;display:flex;flex-wrap:wrap;gap:.45rem;align-content:flex-start}
.report .chip{border:1px solid var(--line);border-radius:4px;padding:.35rem .6rem;font-size:.84rem;line-height:1.3;background:var(--paper);max-width:100%}
.report .chip b{font-weight:600;display:block}
.report .chip small{color:var(--ink-2);font-size:.78rem;display:block}
.report .chip.ok{border-left:3px solid var(--ok)}
.report .chip.doc{border-left:3px solid var(--accent)}
.report .chip.todo{border-left:3px solid var(--todo);border-style:dashed}
.report .chip.warn{border-left:3px solid var(--warn)}
.report .arrow{text-align:center;color:var(--ink-3);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}
.report .check{display:grid;gap:.35rem;margin:.8rem 0;padding:0;list-style:none}
.report .check li{display:block;position:relative;padding-left:1.7rem;font-size:.92rem;max-width:72ch}
.report .check li::before{content:"";position:absolute;left:0;top:.3rem;width:.9rem;height:.9rem;border:1.5px solid var(--ink-3);border-radius:2px}
.report /* home */
.hero{max-width:76ch;margin-bottom:2rem}
.report .path{counter-reset:p;list-style:none;padding:0;max-width:none;display:grid;gap:.5rem}
.report .path li{counter-increment:p;display:block;position:relative;padding:.6rem .9rem .6rem 3rem;background:var(--panel);border:1px solid var(--line);border-radius:4px;max-width:72ch}
.report .path li::before{content:counter(p);position:absolute;left:.9rem;top:.6rem;font-weight:700;color:var(--accent)}
.report .docs .ext.xlsx{background:var(--ok-soft);color:var(--ok)}
.report .docs .ext.docx{background:var(--accent-soft);color:var(--accent)}
.report .docs .ext.pptx{background:var(--warn-soft);color:var(--warn)}
.report /* slides */
.slides{display:grid;gap:1.2rem;max-width:960px}
.report .slide{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:.6rem}
.report .slide img{width:100%;height:auto;display:block;border:1px solid var(--line)}
.report .slide .cap{font-size:.82rem;color:var(--ink-2);margin:.4rem .2rem 0;display:flex;justify-content:space-between}
.report .slide-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.6rem;margin:1rem 0 2rem}
.report .slide-grid a img{width:100%;border:1px solid var(--line);border-radius:3px;display:block}
.report .slide-grid a{text-decoration:none;color:var(--ink-2);font-size:.75rem}
.report section.page [id],.report main [id]{scroll-margin-top:8.5rem}
@media (max-width:900px){.report .tier{grid-template-columns:1fr}
.report .tier>.lbl{border-right:0;border-bottom:1px solid var(--line)}
.report .imp dl{grid-template-columns:1fr}
}
@media print{}
