/* Typefaces hosted with the app (SIL Open Font License — see assets/fonts/OFL-*.txt): no outside requests. */
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/hanken-grotesk-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/hanken-grotesk-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/hanken-grotesk-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/hanken-grotesk-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/hanken-grotesk-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/hanken-grotesk-latin-ext-500-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/hanken-grotesk-latin-ext-600-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/hanken-grotesk-latin-ext-700-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/newsreader-latin-400-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/newsreader-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:500;font-display:swap;src:url(/assets/fonts/newsreader-latin-500-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/newsreader-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:600;font-display:swap;src:url(/assets/fonts/newsreader-latin-600-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/newsreader-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/newsreader-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/newsreader-latin-ext-500-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/newsreader-latin-ext-600-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* Mtech Author design system — matches the approved canvas (Step D.1).
   Colours: Paper #F7F7F4, Sheet #FFFFFF, Ink #18212B, Graphite #5A6372, Rule #E2E4DF, Press teal #0D5C58.
   Type: Newsreader (page titles, manuscript text), Hanken Grotesk (interface).
   Edit tokens here only; screens use these classes. */

body{margin:0}
a{color:#0D5C58}a:hover{color:#08403D}
.r{font-family:'Hanken Grotesk',system-ui,sans-serif;color:#18212B;font-size:14px;line-height:1.5;background:#F7F7F4}
.r h1,.r h2,.r h3{margin:0;color:#18212B}
.r h1{font-family:'Newsreader',Georgia,serif;font-weight:600;letter-spacing:-0.01em;line-height:1.15}
.r h2{font-weight:600;font-size:17px;letter-spacing:-0.005em}
.r h3{font-weight:600;font-size:15px}
.serif{font-family:'Newsreader',Georgia,serif}
.shell{display:flex;flex-wrap:wrap;align-items:stretch}
.side{flex:1 1 236px;max-width:252px;background:#FFFFFF;border-right:1px solid #E2E4DF;padding:18px 12px 24px;display:flex;flex-direction:column;gap:2px;box-sizing:border-box}
.brand{display:flex;align-items:center;gap:10px;padding:4px 10px 18px;text-decoration:none;color:#18212B}
.brand b{font-family:'Newsreader',Georgia,serif;font-size:21px;font-weight:600;letter-spacing:-0.01em}
.mark{width:28px;height:28px;border-radius:7px;background:#0D5C58;display:flex;align-items:center;justify-content:center}
.side a.nv{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:#3A4452;text-decoration:none;font-weight:500;min-height:24px}
.side a.nv:hover{background:#F2F3EF;color:#18212B}
.side a.nv.on{background:#E3EFEC;color:#0B4D4A;font-weight:600}
.side a.nv svg{flex:none}
.side .grp{font-size:12px;color:#5A6372;padding:16px 10px 6px;font-weight:600}
.side .team{margin-top:auto;border-top:1px solid #E2E4DF;padding:14px 10px 0;display:flex;gap:10px;align-items:center}
.av{width:32px;height:32px;border-radius:99px;background:#DCE8E5;color:#0B4D4A;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;flex:none}
.main{flex:999 1 560px;min-width:0;display:flex;flex-direction:column}
.top{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:12px 32px;border-bottom:1px solid #E2E4DF;background:#FFFFFF}
.crumbs{display:flex;gap:8px;align-items:center;color:#5A6372;font-size:13px}.crumbs a{color:#5A6372;text-decoration:none}.crumbs b{color:#18212B;font-weight:600}
.search{display:flex;align-items:center;gap:8px;border:1px solid #D5D8D1;border-radius:8px;padding:0 10px;min-height:40px;width:320px;max-width:100%;background:#FBFBF9;color:#5A6372;box-sizing:border-box}
.search input{border:0;background:transparent;font:inherit;flex:1;min-width:0;color:#18212B;outline:none}
kbd{font-family:'Hanken Grotesk',sans-serif;font-size:11px;font-weight:600;border:1px solid #D5D8D1;border-bottom-width:2px;border-radius:5px;padding:1px 6px;color:#3A4452;background:#FFFFFF}
.pad{padding:28px 32px 56px;display:flex;flex-direction:column;gap:20px;max-width:1240px;width:100%;box-sizing:border-box}
.g{display:grid;gap:16px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.sb{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.card{background:#FFFFFF;border:1px solid #E2E4DF;border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:12px}
.flat{display:flex;flex-direction:column;gap:12px}
.mut{color:#5A6372}
.small{font-size:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border-radius:8px;border:1px solid #CDD1CA;background:#FFFFFF;color:#18212B;font:600 14px 'Hanken Grotesk',sans-serif;cursor:pointer;text-decoration:none;box-sizing:border-box;white-space:nowrap}
.btn:hover{background:#F2F3EF}
.btn.sm{min-height:36px;padding:0 12px;font-size:13px}
.btn.pri{background:#0D5C58;border-color:#0D5C58;color:#FFFFFF}.btn.pri:hover{background:#0A4B48}
.btn.quiet{border-color:transparent;background:transparent;color:#3A4452}
.btn.dng{color:#9A2329;border-color:#E7C3C0}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:600;white-space:nowrap;line-height:1.5}
.ok{background:#E1EFEB;color:#0B4D4A}.warn{background:#FCEBD8;color:#7F3B05}.run{background:#E3EAF6;color:#1F4685}.draft{background:#EEEFEB;color:#454D59}.bad{background:#F8E2E0;color:#8E1F24}
.chip{display:inline-block;padding:3px 9px;border-radius:6px;background:#F2F3EF;border:1px solid #E2E4DF;color:#3A4452;font-size:12px;font-weight:600}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid #ECEDE9;vertical-align:middle}th{font-size:12px;color:#5A6372;font-weight:600;border-bottom-color:#E2E4DF}
tr:last-child td{border-bottom:0}
.tw{overflow-x:auto}
.ph{background:#EEEFEB;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#5A6372;font-size:12px}
.tabs{display:flex;gap:2px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;padding:0 32px;background:#FFFFFF;border-bottom:1px solid #E2E4DF}
.tabs a{white-space:nowrap;padding:12px 12px 11px;text-decoration:none;color:#5A6372;border-bottom:2px solid transparent;font-weight:500}
.tabs a:hover{color:#18212B}
.tabs a.on{color:#18212B;font-weight:600;border-bottom-color:#0D5C58}
label.f{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:13px;color:#2B3440}
.in{min-height:44px;padding:0 12px;border:1px solid #CDD1CA;border-radius:8px;font:400 14px 'Hanken Grotesk',sans-serif;box-sizing:border-box;width:100%;background:#FFFFFF;color:#18212B}
.in:focus{outline:2px solid #0D5C58;outline-offset:1px}
textarea.in{padding:10px 12px;min-height:84px;line-height:1.5}
.bar{height:6px;background:#E8EAE5;border-radius:99px;overflow:hidden}.bar span{display:block;height:100%;background:#0D5C58;border-radius:99px}
del{background:#FBE4DA;color:#7A2410;text-decoration:line-through;text-decoration-thickness:1.5px;border-radius:3px;padding:0 2px}
ins{background:#DDEEEA;color:#0B4D4A;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px;border-radius:3px;padding:0 2px}
.k{font:600 26px 'Newsreader',Georgia,serif;letter-spacing:-0.01em}
.wave{height:56px;border-radius:8px;background:repeating-linear-gradient(90deg,#9CC7C0 0 3px,transparent 3px 6px)}
.note{background:#FFF5EA;border:1px solid #F0D6B8;border-radius:10px;padding:12px 14px;color:#5E3507}
.spine{display:flex;gap:2px;height:12px;width:100%}
.spine i{display:block;border-radius:3px;height:100%}
.s0{background:#DADDD6}.s1{background:#6F93D3}.s2{background:#E29A55}.s3{background:#0D5C58}.s4{background:#18212B}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:#454D59}.legend span{display:inline-flex;gap:6px;align-items:center}.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.stat{display:flex;flex-direction:column;gap:2px}.stat b{font:600 22px 'Newsreader',Georgia,serif}.stat span{font-size:12px;color:#5A6372}
.statline{display:flex;gap:32px;flex-wrap:wrap;padding:16px 20px;background:#FFFFFF;border:1px solid #E2E4DF;border-radius:12px}
.badge-ai{font-size:11px;font-weight:700;color:#1F4685;background:#E3EAF6;border-radius:5px;padding:1px 6px}
.badge-rule{font-size:11px;font-weight:700;color:#454D59;background:#EEEFEB;border-radius:5px;padding:1px 6px}
.ptitle{display:flex;flex-direction:column;gap:6px;padding:20px 32px 14px;background:#FFFFFF}
.manu{font-family:'Newsreader',Georgia,serif;font-size:18px;line-height:1.75;color:#1F2730;max-width:66ch}
.manu p{margin:0 0 14px}
.sect{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;text-decoration:none;color:#2B3440}
.sect.on{background:#E3EFEC;color:#0B4D4A;font-weight:600}
.dot{width:9px;height:9px;border-radius:99px;flex:none}
@media(max-width:820px){.side{max-width:none;flex-basis:100%}.g{grid-template-columns:1fr!important}.pad{padding:20px}}

/* ---------- app-only additions (not in the canvas): utilities used by working screens ---------- */
:focus-visible{outline:2px solid #0D5C58;outline-offset:2px}
.hide{display:none!important}
.drop{border:2px dashed #C3C8C0;background:#FBFBF9;border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.drop.has{border-style:solid;border-color:#0D5C58;background:#EEF5F3}
.preview{width:100%;border-radius:10px;background:#EEEFEB;min-height:160px;display:block}
.chk{display:flex;gap:8px;align-items:flex-start;font-size:13px}
.err{background:#F8E2E0;border:1px solid #EBC2BF;color:#6E1A1E;border-radius:10px;padding:12px 14px}
.busy{opacity:.6;pointer-events:none}
.fmtgrid label{font-size:13px}
input[type=range]{width:100%;accent-color:#0D5C58}
input[type=checkbox],input[type=radio]{accent-color:#0D5C58;width:16px;height:16px}
.banner{font-family:'Hanken Grotesk',system-ui,sans-serif;background:#FFF5EA;border-bottom:1px solid #F0D6B8;color:#5E3507;padding:10px 32px;font-size:13px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.banner a{color:#0B4D4A;font-weight:600}.banner .sep{color:#C9A27A}
.skel{background:linear-gradient(90deg,#EEEFEB 25%,#F6F7F3 50%,#EEEFEB 75%);background-size:200% 100%;animation:skel 1.2s ease-in-out infinite;border-radius:6px;height:14px}
@keyframes skel{from{background-position:200% 0}to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.skel{animation:none}*{transition:none!important}}
.toast{position:fixed;right:24px;bottom:24px;background:#18212B;color:#FFFFFF;border-radius:10px;padding:12px 16px;font-size:14px;box-shadow:0 12px 30px rgba(24,33,43,.25);z-index:50}
[data-sel="1"]{outline:2px solid #0D5C58;outline-offset:2px}
mark{background:#FCEBD8;border-radius:3px;padding:0 2px;color:inherit}
.kbdhint{font-size:12px;color:#5A6372;display:flex;gap:10px;flex-wrap:wrap;align-items:center}

/* visually hidden but read by screen readers */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* phones and small tablets: navigation folds behind a Menu button so the page content comes first */
.menu-btn{display:none}
.navlinks{display:contents}
@media(max-width:820px){
  .side{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:10px 14px;border-right:0;border-bottom:1px solid #E2E4DF;position:sticky;top:0;z-index:20}
  .menu-btn{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:8px 14px;border:1px solid #CBD0C8;border-radius:8px;background:#FFFFFF;color:#18212B;font:inherit;font-weight:600;cursor:pointer}
  .menu-btn:focus-visible{outline:3px solid #0D5C58;outline-offset:2px}
  .navlinks{display:none;flex-basis:100%;flex-direction:column;gap:2px;padding-top:8px}
  .side.open .navlinks{display:flex;max-height:calc(100vh - 70px);overflow:auto}
  .side .team{margin-top:8px}
  .top{flex-wrap:wrap;gap:8px}
  .search{flex:1 1 100%}
  .search kbd{display:none}
}
/* project tabs: one row that scrolls sideways on phones */
@media(max-width:820px){.ptabs{flex-wrap:nowrap!important;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding-bottom:4px;max-width:100%}.ptabs a{flex:none}}
/* button states: pressed and unavailable */
.btn:active:not(:disabled){transform:translateY(1px)}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed}
/* keyboard users can skip the navigation */
.skip{position:absolute;left:12px;top:-60px;z-index:50;background:#0D5C58;color:#FFFFFF;padding:10px 16px;border-radius:8px;font-weight:600;text-decoration:none}
.skip:focus{top:12px}
#content:focus{outline:none}
/* visible keyboard focus for the search box and audio players */
.search:focus-within{outline:3px solid #0D5C58;outline-offset:2px}
audio:focus,audio:focus-within,audio:focus-visible{outline:3px solid #0D5C58;outline-offset:2px;border-radius:20px}
/* names and text in right-to-left languages (Arabic, Urdu, Hebrew) read in their own direction */
td,th,b,h1,h2,h3,p,li,label,.small,.crumbs,.note,summary{unicode-bidi:plaintext}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
.linkbtn:focus-visible{outline:3px solid #0D5C58;outline-offset:2px}
/* very long words or links never push the page wider than the screen */
body{word-break:break-word;overflow-wrap:anywhere} /* word-break: fallback for older Safari */
a,span,strong,em{unicode-bidi:plaintext}
/* long names in drop-down lists never widen the page */
select.in{max-width:100%;text-overflow:ellipsis}
.top .row{flex-wrap:wrap;min-width:0}
.top select.in{max-width:min(320px,42vw)}
/* older browsers without :focus-visible still show a focus ring */
@supports not selector(:focus-visible){a:focus,button:focus,input:focus,select:focus,textarea:focus{outline:3px solid #0D5C58;outline-offset:2px}}
