:root{--ink:#202020;--paper:#f2f3f5;--white:#fff;--accent:#fe3e24;--grey:#929292;--line:#c6c8cc;--heading:Arial,sans-serif;--body:Calibri,Arial,sans-serif;--space:1.5rem}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:1.125rem;line-height:1.5}header,footer{display:flex;justify-content:space-between;align-items:center;padding:2rem 5vw;background:var(--white);gap:2rem}header{border-bottom:1px solid var(--line)}nav{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap}.brand{font:700 1.5rem var(--heading);text-decoration:none;display:flex;align-items:center;gap:2rem}.brand span{font:400 .9rem var(--heading);max-width:8rem}.brand img{width:120px;height:auto;margin:24px}a{color:var(--ink);text-underline-offset:4px}a:hover{text-decoration-thickness:2px}main{max-width:1400px;margin:auto;padding:4rem 5vw;min-height:70vh}h1,h2,h3{font-family:var(--heading);line-height:1.1;letter-spacing:-.035em}h1{font-size:clamp(2.4rem,5vw,4.4rem);max-width:1000px;margin:1rem 0 1.8rem;font-weight:400}h2{font-size:1.6rem}p{max-width:68ch;margin:1.2rem 0}.eyebrow{font-family:monospace;font-size:.8rem;letter-spacing:.11em;text-transform:uppercase}.hero{padding:2rem 0 4rem;border-top:5px solid var(--accent)}.hero p{max-width:560px}.button,button{font:700 1rem var(--body);background:var(--ink);color:white;border:2px solid var(--ink);padding:.8rem 1.25rem;border-radius:3px;display:inline-block;text-decoration:none;cursor:pointer;min-height:44px}button:hover,.button:hover{background:#424242}button:disabled{opacity:.6;cursor:wait}button.secondary{background:white;color:var(--ink)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--ink);outline-offset:4px;box-shadow:0 0 0 6px white}label{display:block;font-weight:700;margin:.8rem 0 .3rem}input,select,textarea{font:inherit;width:min(100%,650px);display:block;padding:.7rem;border:1px solid #666;background:white;border-radius:2px;margin-bottom:1rem}.panel{background:white;padding:2rem;margin:2rem 0;border:1px solid var(--line);border-top:3px solid var(--accent)}.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3rem}.project-card{display:block;text-decoration:none;padding:2rem;background:white;border:1px solid var(--line);border-top:3px solid var(--accent)}.project-card:hover{border-color:var(--ink)}.project-card>span:last-child{display:block;margin-top:2rem}.simulation{padding:.55rem 5vw;background:var(--ink);color:white;font:400 .8rem monospace;letter-spacing:.03em}.muted{font-size:.95rem}section{margin-bottom:2rem}table{border-collapse:collapse;width:100%;background:white;text-align:left}th,td{padding:1rem;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}td button{margin:.25rem}th{font-size:.85rem}progress{width:100%;height:1.5rem;accent-color:var(--ink);margin-top:1rem}#message:not(:empty){border-left:5px solid var(--accent);background:white;padding:1rem;position:sticky;bottom:0}dialog{border:1px solid var(--ink);padding:2rem;max-width:min(620px,95vw)}dialog::backdrop{background:#0008}.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;background:white;padding:1rem;z-index:10}footer{font-size:.9rem;border-top:1px solid var(--line)}.table-wrap{overflow-x:auto}.badge{font-size:.85rem;border:1px solid var(--line);padding:.25rem .5rem;white-space:nowrap}@media(max-width:800px){header,footer{align-items:flex-start;flex-direction:column;padding:1.5rem}.projects{grid-template-columns:1fr}main{padding:2rem 1.5rem}.panel{padding:1.2rem}nav{gap:1rem}h1{font-size:2.6rem}td,th{padding:.7rem}.brand{gap:1rem}}
.table-wrap table{min-width:640px}.table-wrap{max-width:100%}td button{white-space:nowrap}#versions td:nth-child(3){font-family:monospace;font-size:.8rem;max-width:14rem}
.table-wrap:focus-visible{outline:3px solid #202020;outline-offset:4px}

[hidden]{display:none!important}
.project-workspace h1{font-size:clamp(2rem,4vw,3rem);margin-bottom:1rem}
.file-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-top:2.5rem}
.file-toolbar h2{margin-bottom:.4rem}.file-toolbar p{margin:.4rem 0 1rem}
.tools-menu{position:relative;flex-shrink:0}.tools-menu summary{list-style:none;background:var(--ink);color:white;padding:.75rem 1.1rem;cursor:pointer;font-weight:700;min-height:44px;border-radius:3px}
.tools-menu summary::after{content:' ▾'}.tools-menu summary::-webkit-details-marker{display:none}
.tools-menu summary:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
.tools-options{position:absolute;right:0;top:calc(100% + .5rem);z-index:5;width:250px;background:white;border:1px solid var(--line);padding:.5rem;box-shadow:0 8px 24px #0002}
.tools-options button{display:block;width:100%;text-align:left;background:white;color:var(--ink);border:0;font-weight:400}
.tools-options button:hover{background:var(--paper)}
.file-explorer{display:grid;grid-template-columns:240px minmax(0,1fr);border:1px solid var(--line);background:white;min-height:360px;margin:1rem 0 2rem}
.folder-sidebar{display:block;min-width:0;background:#f8f9fa;border-right:1px solid var(--line);padding:.75rem}
.folder-sidebar h3{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;margin:0}
.folder-sidebar ul{list-style:none;padding:0 0 0 .9rem;margin:0}
.folder-sidebar>ul{padding:0}.folder-sidebar li{margin:0}
.folder-link{background:transparent;color:var(--ink);font-weight:400;border:0;border-radius:2px;padding:.5rem .65rem;text-align:left;overflow-wrap:anywhere;white-space:normal}
.folder-link:hover{background:#e8eaed}.folder-link[aria-current]{font-weight:700;background:#e4e6e9}
.folder-sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:0 .3rem .6rem}
.folder-sidebar .collapse-folders{background:transparent;color:#555;border:0;padding:.25rem;font-size:.75rem;font-weight:400;min-height:28px;white-space:nowrap}
.folder-sidebar .collapse-folders:hover{color:var(--ink);text-decoration:underline}
.folder-sidebar .folder-branches{max-height:32rem;max-height:min(60vh,32rem);overflow:auto;padding:.25rem 0}
.folder-row{display:flex;align-items:center;min-width:0;border-left:2px solid transparent;border-radius:3px;margin:1px 0}
.folder-row:hover{background:#e8eaed}
.folder-row.is-current{border-left-color:var(--accent);background:#fff0ed}
.folder-sidebar .folder-link{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0;min-height:36px;padding:.3rem .35rem;font-size:.9rem;line-height:1.3;white-space:nowrap;background:transparent}
.folder-sidebar .folder-label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.folder-sidebar .folder-icon{width:16px;height:12px;border-width:1px;border-radius:2px;background:transparent}
.folder-sidebar .folder-icon::before{width:7px;height:4px;top:-4px;left:-1px;border-width:1px;background:#f8f9fa}
.folder-sidebar .folder-row.is-current .folder-icon::before{background:#fff0ed}
.folder-toggle,.folder-toggle-space{flex:0 0 26px;width:26px;height:36px}
.folder-sidebar .folder-toggle{display:flex;align-items:center;justify-content:center;min-height:36px;border:0;padding:0;background:transparent;color:#555}
.folder-sidebar .folder-toggle:hover{background:#dfe2e6}
.folder-chevron{display:block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg)}
.folder-toggle[aria-expanded=true] .folder-chevron{transform:rotate(45deg)}
.folder-sidebar button:focus-visible{outline-offset:-3px;box-shadow:none}
.folder-content{min-width:0;padding:1.25rem}
#folder-breadcrumbs{display:block;border-bottom:1px solid var(--line);padding:0 0 .8rem;margin-bottom:.5rem}
#folder-breadcrumbs ol{list-style:none;display:flex;align-items:center;flex-wrap:wrap;gap:.3rem;padding:0;margin:0}
#folder-breadcrumbs li{display:flex;align-items:center;gap:.5rem}#folder-breadcrumbs li+li::before{content:'/';color:#666}
#folder-breadcrumbs [aria-current]{font-weight:700;padding:.5rem}
#folder-count{margin:.8rem .5rem;color:#555}
#files table{min-width:560px}#files th:first-child{width:50%}#files td{vertical-align:middle}
#files td:first-child .folder-link{width:100%;padding:.25rem 0}
.file-name{display:flex;align-items:center;gap:.8rem;min-height:34px}.file-description{display:block;color:#555;font-weight:400;font-size:.85rem;margin-top:.2rem}
.folder-icon,.file-icon{display:inline-block;position:relative;flex-shrink:0;width:23px;height:19px;border:1.5px solid #60666c;border-radius:2px;background:#eef0f3}
.folder-icon::before{content:'';position:absolute;width:10px;height:5px;border:1.5px solid #60666c;border-bottom:0;top:-6px;left:-1.5px;border-radius:2px 2px 0 0;background:#eef0f3}
.file-icon{width:19px;height:24px;background:white}.file-icon::after{content:'';position:absolute;left:4px;right:4px;top:8px;height:1px;background:#929292;box-shadow:0 4px #929292}
.folder-empty{padding:2rem 1rem;color:#555}.tool-panel>[data-close-tool]{float:right;background:white;color:var(--ink);font-weight:400}
@media(max-width:800px){.file-toolbar{align-items:flex-start;flex-direction:column;gap:.5rem}.tools-options{left:0;right:auto}.file-explorer{grid-template-columns:minmax(0,1fr)}.folder-sidebar{display:none}.folder-content{padding:.75rem}.tool-panel>[data-close-tool]{float:none;margin-bottom:.5rem}}

main:has(.project-workspace){padding-top:2rem;padding-bottom:2rem}.project-workspace>p{margin:.5rem 0}.project-workspace .file-toolbar{margin-top:1.8rem}

.internal-area header{border-bottom:3px solid var(--accent)}
.workspace-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.workspace-heading h1{margin-bottom:1rem}
@media(max-width:800px){.workspace-heading{align-items:flex-start;flex-direction:column}.workspace-heading h1{margin-bottom:0}}

.help-actions{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap}.access-help{max-width:900px}.access-help h1{font-size:clamp(2rem,4vw,3.5rem)}

input[type="checkbox"]{display:inline-block;width:auto;margin:0 .5rem 0 0;vertical-align:middle}

#versions td:nth-child(3){font:inherit;max-width:none}#versions p{margin:.4rem 0;font-size:.95rem}#versions details p{overflow-wrap:anywhere;font-size:.8rem}#versions td:first-child{min-width:10rem}#versions td:nth-child(2){min-width:15rem}#versions td:nth-child(3){min-width:17rem}#versions a{display:block;margin:.5rem 0}#history-filter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem}#history-filter label{margin:0}#history-filter input,#history-filter select{width:100%}

.transfer-panel{background:white;border:1px solid var(--line);border-left:4px solid var(--accent);padding:1rem 1.25rem;margin:1rem 0}.transfer-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem}.transfer-heading strong{overflow-wrap:anywhere}.transfer-heading button{background:white;color:var(--ink);font-weight:400}.transfer-panel progress,#tool-upload progress{display:block;width:100%;height:1rem;accent-color:var(--accent);margin-top:1rem}.transfer-panel p{margin:.75rem 0;font-variant-numeric:tabular-nums}

.signin-guide{max-width:900px}.signin-reminder{border-left:4px solid var(--accent);padding:1rem 1.25rem;background:var(--white)}.signin-steps{padding-left:1.5rem}.signin-steps>li{padding-left:.35rem;margin:1.3rem 0}.signin-steps p{margin:.45rem 0}.signin-guide section{scroll-margin-top:1rem}

/* Branded error pages keep recovery actions and support together. */
.error-page{display:grid;grid-template-columns:180px minmax(0,1fr);max-width:1080px;margin:1rem auto 3rem;background:var(--white);border:1px solid var(--line);border-top:4px solid var(--accent)}
.error-code{font-family:Arial,sans-serif;font-size:4rem;font-weight:700;letter-spacing:-.06em;padding:2.5rem 1.5rem;color:var(--ink);border-right:1px solid var(--line);text-align:center}
.error-content{padding:2.5rem 3rem}
.error-content .eyebrow{margin:0 0 1rem;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase}
.error-content h1{font-size:clamp(2rem,3vw,3rem);line-height:1.15;margin:0 0 1.5rem}
.error-explanation{max-width:660px;margin-bottom:2rem}
.error-help-link{display:inline-block;margin-top:1.5rem}
.error-support{grid-column:1/-1;border-top:1px solid var(--line);padding:1.5rem 3rem;background:#fafafa}
.error-support h2{font-size:1.3rem;margin:0}
.error-support p{max-width:800px}
.error-reference{font-family:Consolas,monospace;font-size:1rem;overflow-wrap:anywhere}
@media(max-width:700px){.error-page{grid-template-columns:1fr}.error-code{border-right:0;text-align:left;padding:1rem 1.5rem;font-size:2.5rem}.error-content,.error-support{padding:1.5rem}}

/* Keep account status readable in the desktop directory. */
#people-list td:nth-child(5){white-space:nowrap}

/* Directory forms stay above the list, with controls visible on shorter laptop screens. */
body:has(dialog[open]){overflow:hidden}
.form-dialog{width:min(760px,calc(100vw - 4rem));max-width:none;max-height:calc(100dvh - 4rem);padding:0;overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-top:4px solid var(--accent);box-shadow:0 16px 60px #0004}
.dialog-header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--white);padding:1.25rem 1.75rem;border-bottom:1px solid var(--line)}
.dialog-header h2{margin:0}.dialog-header button{flex-shrink:0}
.dialog-content{padding:1rem 1.75rem 1.5rem}.dialog-content>p:first-child{margin-top:0}
.dialog-content input:not([type=checkbox]),.dialog-content select,.dialog-content textarea{width:100%}
.dialog-actions{position:sticky;bottom:0;display:flex;flex-wrap:wrap;gap:.75rem;padding:1rem 1.75rem;background:var(--white);border-top:1px solid var(--line)}
.dialog-error:not(:empty){border-left:4px solid var(--accent);background:var(--paper);padding:1rem;margin:0 0 1rem;scroll-margin-top:6rem}
.dialog-content input,.dialog-content select,.dialog-content textarea{scroll-margin:6rem 0}

/* Compact directory controls; result tables render only one bounded page. */
.directory-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem;padding:1.25rem;background:var(--surface,#fff);border:1px solid var(--line,#c7c9cc);margin:1.5rem 0 1rem}
.directory-filters>div{flex:1 1 10rem;min-width:0}
.directory-filters .directory-query{flex:2 1 20rem}
.directory-filters label{margin:0 0 .4rem}
.directory-filters input,.directory-filters select{margin:0;width:100%}
.directory-filters .directory-filter-actions{display:flex;flex:0 0 auto;gap:.5rem}
.directory-filters .directory-deleted{flex-basis:100%;margin:0}
.directory-filters input[type=checkbox]{width:auto}
.directory-paging{display:flex;align-items:center;gap:1rem;margin:1.25rem 0}
.directory-paging span{min-width:7rem;text-align:center}

/* Compact desktop forms, safe content and shared task states. */
.projects{grid-template-columns:repeat(3,minmax(0,1fr))}
.project-card,.workspace-heading>*,main,section,form{min-width:0}
h1,h2,h3,p,.project-card,.file-name,#folder-breadcrumbs li{overflow-wrap:anywhere}
.file-name>span:last-child{min-width:0}
.form-dialog{width:min(800px,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);font-size:1rem;line-height:1.35}
.dialog-header{padding:.85rem 1.25rem}.dialog-header h2{font-size:1.45rem}
.dialog-content{padding:1rem 1.25rem}.dialog-content p{margin:.45rem 0 .8rem}
.dialog-content label{margin:.45rem 0 .25rem}.dialog-content input,.dialog-content select,.dialog-content textarea{padding:.5rem .65rem;margin-bottom:.45rem;min-height:44px}
.dialog-content input[type=checkbox]{min-height:0}
.dialog-content .muted{font-size:.9rem;line-height:1.35;margin:.25rem 0 .6rem}
.dialog-actions{padding:.75rem 1.25rem;gap:.65rem}.dialog-actions button,.dialog-header button{padding:.55rem 1rem}
.dialog-error:empty{display:none}.dialog-error:not(:empty){padding:.65rem;margin:0 0 .65rem;overflow-wrap:anywhere}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem 1rem}
.form-wide{grid-column:1/-1}.form-grid>div{min-width:0}
.form-links{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem 1rem}.form-links button{padding:.3rem .65rem}
.panel-feedback:empty{display:none}.panel-feedback{padding:.75rem 1rem;margin:.5rem 0;background:white;border-left:4px solid var(--accent);overflow-wrap:anywhere}
.panel-feedback p{margin:.3rem 0 .65rem}.panel-feedback button{margin:.25rem 0}
nav[aria-label=Main] a[aria-current=page]{font-weight:700;text-decoration-thickness:3px}
.section-shortcuts{margin:1rem 0}.section-shortcuts a{padding:.4rem 0}
.tool-panel h2{scroll-margin-top:1rem}.tool-panel form>button{margin:.5rem .5rem .5rem 0}
#history-filter{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:.75rem}
#history-filter label{display:block;margin:0 0 .25rem}#history-filter input,#history-filter select{margin:0}
#history-filter .filter-actions{display:flex;gap:.5rem;grid-column:1/-1}
@media(max-width:1000px){.projects{grid-template-columns:repeat(2,minmax(0,1fr))}#history-filter{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.projects,.form-grid,#history-filter{grid-template-columns:minmax(0,1fr)}.form-dialog{width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem)}.dialog-header,.dialog-content,.dialog-actions{padding:.75rem}.brand{flex-wrap:wrap}.brand img{margin:0}.workspace-heading,.transfer-heading{flex-wrap:wrap}#folder-breadcrumbs li{min-width:0}.tools-options{max-width:calc(100vw - 3rem)}}

#versions>button{margin-bottom:.65rem}
