@font-face{font-family:Figtree;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/figtree-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:Figtree;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/figtree-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/bricolage-grotesque-latin-800-normal.woff2) format('woff2')}
body{margin:0;min-height:100vh;background:#061726;color:#10253a;font-family:Figtree,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='160' viewBox='0 0 640 160'%3E%3Cpath d='M0 40 Q80 10 160 40 T320 40 T480 40 T640 40 M0 120 Q80 90 160 120 T320 120 T480 120 T640 120' fill='none' stroke='%23ffffff' stroke-opacity='.045' stroke-width='1.5'/%3E%3C/svg%3E") 0 0/640px 160px,radial-gradient(56rem 36rem at 0% -8%,rgba(20,184,166,.30),transparent 62%),radial-gradient(48rem 34rem at 100% 0%,rgba(14,165,233,.24),transparent 60%),radial-gradient(60rem 44rem at 50% 115%,rgba(37,99,235,.20),transparent 62%),linear-gradient(180deg,#061726,#08203a 55%,#061a2d)}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:#fff}.brand img{flex:none;width:auto;height:64px;filter:drop-shadow(0 8px 18px rgba(34,211,238,.28))}.brand-name{display:block;font:italic 800 2.1rem/1 "Bricolage Grotesque",sans-serif;letter-spacing:-.02em;color:#fff}.brand-name em{font-style:italic;background:linear-gradient(90deg,#22e3ff,#2dd4bf);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.08em}.brand-tag{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:.64rem;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:#cfe3f1;white-space:nowrap}.brand-tag::before,.brand-tag::after{content:"";width:14px;height:2px;border-radius:2px;background:#22d3ee}@media(min-width:1280px){.brand img{height:76px}.brand-name{font-size:2.5rem}.brand-tag{font-size:.7rem}}@media(max-width:560px){.brand img{height:52px}.brand-name{font-size:1.75rem}.brand-tag{font-size:.58rem;letter-spacing:.2em}}
h1,h2{font-family:"Bricolage Grotesque",Figtree,sans-serif}
.panel{background:#fff;border:1px solid rgba(255,255,255,.75);border-radius:22px;box-shadow:0 24px 60px -24px rgba(0,0,0,.6),0 2px 6px rgba(0,0,0,.12)}
.legal h2,.prose h2{font-size:1.15rem;font-weight:800;margin:2rem 0 .5rem}.legal h2:first-child,.prose h2:first-child{margin-top:0}
.legal p,.legal li,.prose p,.prose li{color:#3d5570;line-height:1.65;font-size:.95rem}.legal p+p,.prose p+p{margin-top:.6rem}.legal ul,.prose ul{list-style:disc;padding-left:1.25rem;margin:.4rem 0 .6rem}
.legal b,.prose b,.prose strong{color:#10253a}.legal a,.prose a{color:#0f766e;text-decoration:underline}
:focus-visible{outline:2px solid #2dd4bf;outline-offset:2px}
/* Guides */
.prose h2{scroll-margin-top:16px}.prose h3{font:800 1rem "Bricolage Grotesque",Figtree,sans-serif;color:#10253a;margin:1.4rem 0 .4rem}
.prose ol{list-style:decimal;padding-left:1.35rem;margin:.4rem 0 .6rem}.prose li+li{margin-top:.3rem}
.prose table{width:100%;border-collapse:collapse;margin:.8rem 0;font-size:.9rem}.prose th{text-align:left;background:#eef4f9;color:#33495f;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;padding:8px 10px}.prose td{padding:8px 10px;border-top:1px solid #e3ebf2;color:#3d5570;vertical-align:top}.prose td:first-child{font-weight:700;color:#10253a}
.callout{margin:1rem 0;padding:.8rem 1rem;border-radius:14px;border:1px solid #bfe9e2;background:#ecfbf8;color:#0b5f58;font-size:.9rem;line-height:1.6}.callout.warn{border-color:#f5d48a;background:#fff8e6;color:#7a4a05}.callout b{color:inherit}
.toc{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 1.2rem}.toc a{font-size:.8rem;font-weight:700;color:#0f766e;background:#e9f6f4;border-radius:999px;padding:5px 11px;text-decoration:none}.toc a:hover{background:#d4efeb}
.guide-nav{display:flex;flex-wrap:wrap;gap:8px;margin-top:1.1rem}.guide-nav a{font-size:.82rem;font-weight:700;color:#cfe3f1;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);border-radius:999px;padding:6px 13px;text-decoration:none}.guide-nav a:hover{background:rgba(255,255,255,.12)}.guide-nav a[aria-current="page"]{background:#fff;color:#0f2236;border-color:#fff}
.cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:2rem;padding:1rem 1.2rem;border-radius:16px;background:linear-gradient(135deg,#0a2135,#0d3350);color:#e6f0f8}.cta p{color:#cfe3f1!important;margin:0!important}.cta a{flex:none;display:inline-block;padding:10px 16px;border-radius:12px;background:linear-gradient(135deg,#2dd4bf,#38bdf8);color:#032420!important;font-weight:800;text-decoration:none!important}
.stack{margin:1rem 0;border-radius:14px;overflow:hidden;border:1px solid #dfe8f0}.stack div{display:flex;justify-content:space-between;gap:10px;padding:7px 12px;font-size:.85rem;font-weight:700}.stack span{font-weight:400;opacity:.85}
.page-footer{margin-top:2rem;padding:1.2rem 0 1rem;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-wrap:wrap;gap:10px 20px;justify-content:space-between;font-size:.85rem}.page-footer a{color:#5eead4;text-decoration:none;font-weight:600}.page-footer a:hover{text-decoration:underline}.page-footer nav{display:flex;flex-wrap:wrap;gap:16px}
.page-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
@media(max-width:639px){.lang-switch a{min-height:38px;display:inline-flex;align-items:center;justify-content:center}}.lang-switch{flex:none;display:inline-flex;padding:3px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16)}.lang-switch a{min-width:40px;padding:6px 10px;border-radius:999px;text-align:center;text-decoration:none;font-size:.78rem;font-weight:800;letter-spacing:.08em;color:#cfe3f1}.lang-switch a:hover{color:#fff}.lang-switch a[aria-current]{background:#2dd4bf;color:#04261f}
.contact-form{display:grid;grid-template-columns:1fr;gap:16px}@media(min-width:640px){.contact-form{grid-template-columns:1fr 1fr}.contact-form .wide{grid-column:1/-1}}
.form-row label{display:block;margin-bottom:6px;font-size:.85rem;font-weight:700;color:#10253a}.form-row .opt{font-weight:400;color:#5d7389}
.form-row input,.form-row textarea{width:100%;box-sizing:border-box;border:1px solid #c5d3e0;border-radius:12px;padding:10px 12px;font:inherit;font-size:1rem;color:#10253a;background:#f8fbfd}.form-row textarea{resize:vertical;min-height:150px}
.form-row input:focus,.form-row textarea:focus{outline:2px solid #2dd4bf;outline-offset:1px;background:#fff}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.privacy{font-size:.82rem;color:#4a6178;line-height:1.5}.privacy a{color:#0f766e;text-decoration:underline}
.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.form-actions button{border:0;border-radius:999px;padding:11px 22px;font:inherit;font-weight:700;color:#04261f;background:linear-gradient(90deg,#22d3ee,#2dd4bf);cursor:pointer}.form-actions button:disabled{opacity:.55;cursor:default}
.form-msg{margin:0;font-size:.9rem;font-weight:600;color:#3d5570}.form-msg.ok{color:#0f766e}.form-msg.err{color:#b42318}
.dir-pro{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;padding:18px 22px;border-radius:20px;background:linear-gradient(120deg,rgba(45,212,191,.16),rgba(14,165,233,.14));border:1px solid rgba(94,234,212,.35);color:#e6f6ff}.dir-pro h2{font-size:1.15rem;font-weight:800;color:#fff;margin:0 0 4px}.dir-pro p{margin:0;font-size:.92rem;color:#cfe3f1;max-width:46rem}
.dir-btn{flex:none;border-radius:999px;padding:10px 18px;font-weight:700;color:#04261f;background:linear-gradient(90deg,#22d3ee,#2dd4bf);text-decoration:none}
.dir-filters{display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:720px){.dir-filters{grid-template-columns:1fr 1fr 1.4fr}}
.dir-filters label span{display:block;margin-bottom:6px;font-size:.85rem;font-weight:700;color:#10253a}.dir-filters select,.dir-filters input{width:100%;box-sizing:border-box;border:1px solid #c5d3e0;border-radius:12px;padding:10px 12px;font:inherit;font-size:1rem;color:#10253a;background:#f8fbfd}
.dir-filters select:focus,.dir-filters input:focus{outline:2px solid #2dd4bf;outline-offset:1px;background:#fff}
.dir-count{margin:14px 0 0;font-size:.85rem;color:#4a6178}.dir-h{font-size:1.05rem;font-weight:800;color:#10253a;margin:22px 0 10px}
.dir-grid{display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:720px){.dir-grid{grid-template-columns:1fr 1fr}}
.dir-card{border:1px solid #e2e8f0;border-radius:16px;padding:14px 16px;background:#fbfdfe}.dir-card h3{font-weight:800;color:#10253a;margin:0}.dir-card p{margin:6px 0 0;font-size:.9rem;color:#3d5570;line-height:1.5}
.dir-links{display:flex;flex-wrap:wrap;gap:4px 16px}.dir-card a{display:inline-block;margin-top:4px;font-weight:700;color:#0f766e;text-decoration:underline}
.dir-tags{display:flex;flex-wrap:wrap;gap:6px}.dir-card .dir-tags{margin-top:8px}.dir-tag{font-size:.72rem;font-weight:700;border-radius:999px;padding:3px 9px}.dir-tag.store{color:#7c2d12;background:#ffedd5}.dir-tag.web{color:#1e3a8a;background:#dbeafe}.dir-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.dir-kind{flex:none;font-size:.7rem;font-weight:800;color:#0f766e;background:#ccfbf1;border-radius:999px;padding:3px 9px}.dir-card .dir-place{margin-top:2px;font-size:.8rem;color:#5d7389}
.dir-empty{margin:0;padding:14px 16px;border:1px dashed #c5d3e0;border-radius:16px;color:#4a6178;font-size:.92rem}.dir-note{margin:20px 0 0;font-size:.8rem;color:#5d7389}
/* Phones: logo and FR/EN on one line, tables that fit 320 px, finger-sized links. */
@media(max-width:480px){.page-top{flex-wrap:nowrap}.page-top .brand{min-width:0;gap:10px}.page-top .brand img{height:46px}.page-top .brand-name{font-size:1.55rem}.page-top .brand-tag{font-size:.5rem;letter-spacing:.18em;margin-top:4px}
 .prose table{font-size:.8rem}.prose th,.prose td{padding:7px 6px;hyphens:auto}.prose th{font-size:.66rem;letter-spacing:.03em}}
@media(max-width:359px){.page-top .brand-tag{display:none}}
@media(max-width:640px){.toc a,.guide-nav a{display:inline-flex;align-items:center;min-height:38px}}
@media(max-width:760px){.page-footer{flex-direction:column}.page-footer nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;width:100%}.page-footer a{display:flex;align-items:center;min-height:42px}}
/* Account page */
.account [hidden]{display:none!important}
.acc-h{font-size:1.25rem;font-weight:800;color:#10253a;margin:0}
.acc-p{margin:0;color:#3d5570;line-height:1.6;font-size:.95rem}.acc-p b{color:#10253a;word-break:break-all}
.form-row .acc-code{font-size:1.6rem;font-weight:700;letter-spacing:.35em;text-align:center;max-width:220px}
.form-actions .acc-link,.acc-btn{border:0;background:none;padding:8px 4px;font:inherit;font-size:.9rem;font-weight:700;color:#0f766e;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.form-actions .acc-link:disabled{opacity:.6;cursor:default;text-decoration:none}
.acc-pseudo{margin-top:20px;padding-top:18px;border-top:1px solid #e2e8f0}@media(min-width:640px){.acc-pseudo{grid-template-columns:1fr auto;align-items:end}}
.acc-actions{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:22px;padding-top:14px;border-top:1px solid #e2e8f0}
.acc-btn.danger{color:#b42318}
.acc-status{margin-top:16px}.acc-status:empty{display:none}
@media(max-width:639px){.form-actions .acc-link,.acc-btn{min-height:42px}}
.acc-next{margin:0 0 14px}.acc-next a{display:inline-block;padding:9px 16px;border-radius:999px;font-weight:700;color:#04261f;background:linear-gradient(90deg,#22d3ee,#2dd4bf);text-decoration:none}
.acc-projects{margin-top:22px;padding-top:16px;border-top:1px solid #e2e8f0}.acc-h3{font-size:1.05rem;font-weight:800;color:#10253a;margin:0 0 10px}
.acc-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.acc-list li{border:1px solid #e2e8f0;border-radius:14px;padding:10px 14px;background:#fbfdfe}
.acc-list li.acc-empty{border-style:dashed;color:#4a6178;font-size:.9rem;line-height:1.5}
.acc-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.acc-row b{color:#10253a;word-break:break-word}
.acc-chip{font-size:.72rem;font-weight:800;border-radius:999px;padding:3px 9px}.acc-chip.pending{color:#78350f;background:#fef3c7}.acc-chip.published{color:#0b5f58;background:#ccfbf1}.acc-chip.rejected{color:#7f1d1d;background:#fee2e2}
.acc-meta{margin:4px 0 0;font-size:.85rem;color:#4a6178;line-height:1.5}.acc-list .acc-btn{padding:4px 0;font-size:.85rem}
/* Moderation page */
.mod-facts{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:14px 0 0;font-size:.9rem}.mod-facts dt{font-weight:700;color:#10253a}.mod-facts dd{margin:0;color:#3d5570}
.mod-open{margin:12px 0}.mod-open a{font-weight:700;color:#0f766e;text-decoration:underline}
.mod-scroll{overflow-x:auto;border:1px solid #e2e8f0;border-radius:14px}.mod-table{width:100%;border-collapse:collapse;font-size:.85rem}
.mod-table th{text-align:left;background:#eef4f9;color:#33495f;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;padding:8px 10px}
.mod-table td{padding:7px 10px;border-top:1px solid #edf2f7;color:#3d5570;vertical-align:top}.mod-table td b{color:#10253a}.mod-table td small{color:#5d7389}.mod-table td.n{text-align:right;white-space:nowrap}.mod-table td.ship{font-weight:700;color:#10253a}.mod-table a{color:#0f766e;text-decoration:underline}
.mod-form{margin-top:18px}
.form-actions .acc-btn{background:none;padding:8px 4px}
/* Shared projects */
.sh-filters{margin-bottom:4px}.sh-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:12px}@media(min-width:720px){.sh-grid{grid-template-columns:1fr 1fr}}@media(min-width:1000px){.sh-grid{grid-template-columns:1fr 1fr 1fr}}
.sh-card{display:block;border:1px solid #e2e8f0;border-radius:16px;padding:14px 16px;background:#fbfdfe;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}.sh-card:hover{border-color:#5eead4;box-shadow:0 8px 24px -14px rgba(15,118,110,.5)}
.sh-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.sh-total{font:800 1.15rem "Bricolage Grotesque",Figtree,sans-serif;color:#0f766e}
.sh-card h3{margin:10px 0 4px;font-weight:800;color:#10253a;font-size:1rem;overflow-wrap:anywhere}.sh-meta{margin:2px 0 0;font-size:.84rem;color:#3d5570}.sh-by{margin:8px 0 0;font-size:.78rem;color:#5d7389}
.sh-cta{margin-top:22px}.sh-cta p{margin:0;color:#10253a;font-size:.9rem;line-height:1.5}
.sh-back{margin:0 0 12px}.sh-back a{font-weight:700;color:#0f766e;text-decoration:underline}
.sh-actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.sh-actions button,.sh-open{border:1px solid #c5d3e0;background:#fff;border-radius:999px;padding:9px 16px;font:inherit;font-size:.88rem;font-weight:700;color:#10253a;cursor:pointer;text-decoration:none}
.sh-actions button:hover,.sh-open:hover{background:#f3f7fa}.sh-open{border:0;color:#04261f;background:linear-gradient(90deg,#22d3ee,#2dd4bf)}
.sh-actions .locked::after{content:"🔒";margin-left:6px;font-size:.8em;filter:grayscale(1);opacity:.75}
.sh-lock{margin:0 0 14px;padding:10px 12px;border-radius:12px;background:#fffbeb;border:1px solid #fcd34d;color:#78350f;font-size:.88rem;line-height:1.5}.sh-lock a{font-weight:700;color:#0f766e;text-decoration:underline}
.mod-table tr.sh-cat td{background:#f6f9fb;font-weight:800;color:#10253a;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.mod-table tr.sh-sum td{font-weight:800;color:#10253a;border-top:2px solid #cfdbe5}
#shPrint{display:none}
@media print{body{background:#fff}body::before{display:none}body>*:not(#shPrint){display:none!important}#shPrint{display:block;font:10pt/1.4 Figtree,"Segoe UI",sans-serif;color:#10253a}
 #shPrint h1{font:800 18pt/1.15 "Bricolage Grotesque",sans-serif;margin:2pt 0}#shPrint .pr-brand{margin:0;font-weight:800;color:#0f766e;font-size:9pt;text-transform:uppercase;letter-spacing:.08em}#shPrint .pr-by{margin:0 0 8pt;color:#4a6178}
 #shPrint dl{display:grid;grid-template-columns:auto 1fr;gap:2pt 10pt;margin:0 0 10pt}#shPrint dt{font-weight:700}#shPrint dd{margin:0}
 #shPrint table{width:100%;border-collapse:collapse;font-size:8.5pt}#shPrint th{text-align:left;border-bottom:1pt solid #14b8a6;padding:3pt 4pt}#shPrint td{padding:3pt 4pt;border-bottom:.5pt solid #dfe8f0;vertical-align:top}#shPrint td.n{text-align:right;white-space:nowrap}
 #shPrint tr.sh-cat td{font-weight:800;background:#f3f7fa}#shPrint tr.sh-sum td{font-weight:800;border-top:1pt solid #10253a}#shPrint a{color:inherit;text-decoration:none}#shPrint .pr-foot{margin-top:10pt;font-size:8pt;color:#5d7389}}
.acc-row b a{color:#0f766e;text-decoration:underline}
/* Admin dashboard */
.admin code{font-size:.85em;background:#eef4f9;border-radius:6px;padding:1px 6px}.adm-go{margin:14px 0 0}
.adm-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.adm-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px;border-bottom:1px solid #e2e8f0;padding-bottom:10px}
.adm-tabs button{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;font-weight:700;font-size:.88rem;color:#33495f;background:#f3f7fa;cursor:pointer}
.adm-tabs button[aria-selected="true"]{background:#0f766e;color:#fff}.adm-badge{min-width:20px;padding:1px 6px;border-radius:999px;background:#f59e0b;color:#fff;font-size:.72rem}
.adm-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.adm-card{display:block;text-align:left;border:1px solid #e2e8f0;border-radius:16px;padding:14px 16px;background:#fbfdfe;font:inherit;color:inherit}button.adm-card{cursor:pointer}button.adm-card:hover{border-color:#5eead4}
.adm-card.warn{border-color:#fcd34d;background:#fffbeb}.adm-k{display:block;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#5d7389}
.adm-card b{display:block;margin:4px 0;font:800 1.8rem/1.1 "Bricolage Grotesque",Figtree,sans-serif;color:#10253a}.adm-card small{color:#5d7389;font-size:.8rem}
.adm-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.adm-tools label{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;font-weight:700;color:#10253a}
.adm-tools select,.adm-tools input{border:1px solid #c5d3e0;border-radius:10px;padding:7px 10px;font:inherit;font-size:.9rem;background:#f8fbfd;min-width:200px}.adm-tools .dir-count{margin:0}
.adm-table td{vertical-align:middle}.adm-act{white-space:nowrap}.adm-act button{margin:2px 4px 2px 0;padding:5px 10px;border-radius:8px;border:1px solid #d3dfe9;background:#fff;font:inherit;font-size:.78rem;font-weight:700;color:#33495f;cursor:pointer}
.adm-act button.ok{color:#0f766e;border-color:#99f6e4}.adm-act button.danger{color:#b42318;border-color:#f3c7c3}.adm-empty{text-align:center;color:#5d7389;padding:18px}
/* Guides hub */
.guide-cards{display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:720px){.guide-cards{grid-template-columns:repeat(3,1fr)}}
.guide-card{display:flex;flex-direction:column;border:1px solid #e2e8f0;border-radius:16px;padding:16px 18px;background:#fbfdfe;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}.guide-card:hover{border-color:#5eead4;box-shadow:0 8px 24px -14px rgba(15,118,110,.5)}
.guide-card h2{font-size:1.05rem;font-weight:800;color:#10253a;margin:0}.guide-card p{flex:1;margin:6px 0 12px;font-size:.9rem;line-height:1.5;color:#3d5570}.guide-card span{font-weight:700;color:#0f766e}
.page-footer a[aria-current="page"]{color:#fff;text-decoration:underline;text-underline-offset:3px}
