:root{color-scheme:light dark;--rice-paper:#F5F5F0;--rice-paper-warm:#EDE9E1;--vermilion:#C83C23;--vermilion-deep:#b5372b;--gamboge:#E8B004;--gamboge-light:#F5D580;--ink:#2C2C2C;--ink-light:#5A5A55;--silk:#E8E4DA;--seal-red:#A82A17;--jade:#527052;--field:rgba(255,255,255,.65);--line:rgba(44,44,44,.12);--serif:"Songti SC","STSong","SimSun","Noto Serif SC",serif;--roman:Georgia,"Times New Roman",serif}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--rice-paper);color:var(--ink);font:15px/1.8 var(--serif);overflow-wrap:anywhere}body::before{content:"";position:fixed;inset:0;background:radial-gradient(ellipse at 20% 30%,rgba(232,176,4,.03),transparent 50%),radial-gradient(ellipse at 80% 70%,rgba(200,60,35,.02),transparent 50%);pointer-events:none;z-index:-1}a{color:var(--vermilion);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit}button,a,input,textarea,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--vermilion);outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500}h1{font-size:28px;letter-spacing:8px;line-height:1.5}h2{font-size:21px;letter-spacing:3px}h3{font-size:17px;letter-spacing:2px}p+p{margin-top:10px}[hidden]{display:none!important}.skip-link{position:absolute;left:12px;top:-100px;z-index:1000;background:var(--rice-paper);padding:10px}.skip-link:focus{top:12px}
.simulation-bar{background:var(--ink);color:var(--rice-paper);font-size:12px;letter-spacing:.6px;padding:8px 24px;text-align:center}.simulation-bar strong{color:var(--gamboge-light);font-family:var(--roman);font-size:12px}.site-header{position:relative;z-index:20;border-bottom:1px solid var(--line);background:var(--rice-paper)}.header-inner{max-width:1440px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 48px}.brand{display:flex;gap:12px;align-items:center;color:var(--ink);flex-shrink:0}.brand:hover{text-decoration:none}.brand-mark{font:40px/1 var(--roman);color:var(--vermilion)}.brand-name{font-size:22px;font-weight:600;letter-spacing:4px}.brand-en{font:11px/1.7 var(--roman);letter-spacing:3px;color:var(--ink-light)}.nav-right{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:18px}.nav-link{color:var(--ink-light);font-size:13px;letter-spacing:1px}.nav-link[aria-current=page]{color:var(--vermilion);border-bottom:1px solid var(--vermilion)}.role-badge{padding:3px 10px;background:var(--vermilion);color:var(--rice-paper);font-size:11px;letter-spacing:2px}.actor-name{font-size:13px;color:var(--ink-light);max-width:160px}.quiet-btn{border:0;padding:4px 0;background:none;color:var(--ink-light);font-size:13px}.theme-btn{border:1px solid var(--silk);padding:4px 10px;background:var(--field);color:var(--ink-light);font-size:12px}.site-footer{max-width:1280px;padding:32px 48px 36px;margin:auto;color:var(--ink-light);font-size:12px;border-top:1px solid var(--line)}
.work-layout{position:relative;max-width:1280px;margin:auto;padding:40px 48px 64px;display:grid;grid-template-columns:250px minmax(0,1fr);gap:40px}.sidebar{align-self:start}.side-card{background:var(--rice-paper-warm);border:1px solid var(--line);padding:28px 24px;margin-bottom:20px}.side-title{font-size:13px;font-weight:500;letter-spacing:3px;margin-bottom:20px;border-left:3px solid var(--vermilion);padding-left:10px}.side-options{display:flex;flex-direction:column;gap:5px}.side-option{display:block;border:0;border-left:2px solid transparent;background:transparent;text-align:left;color:var(--ink-light);padding:10px 14px;font-size:13px;letter-spacing:1px}.side-option.active{color:var(--vermilion);border-left-color:var(--vermilion);background:rgba(200,60,35,.05)}.side-note{font-size:12px;color:var(--ink-light);line-height:1.9}.main-content{min-width:0}.page-header{margin-bottom:30px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}.page-title-wrap{padding-left:20px;border-left:3px solid var(--vermilion)}.page-subtitle{font:12px/1.8 var(--roman);color:var(--ink-light);letter-spacing:4px;margin-bottom:6px}.page-desc{font-size:13px;color:var(--ink-light);margin-top:10px;max-width:65ch}.page-actions,.button-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.button-row{margin-top:22px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border:1px solid var(--vermilion);background:var(--rice-paper);color:var(--vermilion);font-size:13px;letter-spacing:2px;text-align:center;min-height:44px;text-decoration:none}.btn:hover{background:rgba(200,60,35,.06);text-decoration:none}.btn-primary{background:var(--vermilion);color:#fff;position:relative;padding:14px 28px;min-height:50px}.btn-primary::after{content:"";position:absolute;inset:4px;border:1px solid rgba(255,255,255,.35);pointer-events:none}.btn-primary:hover{background:var(--vermilion-deep)}.btn-small{font-size:12px;padding:8px 14px;letter-spacing:1px}.btn-secondary{border-color:var(--silk);color:var(--ink-light);background:var(--field)}.btn-danger{border-color:var(--seal-red);color:var(--seal-red)}
.scroll-page{max-width:760px;margin:0 auto;padding:60px 48px 72px}.scroll-page .page-header{text-align:center;display:block;margin-bottom:58px}.scroll-page .page-title-wrap{padding:0;border:0;position:relative}.scroll-page .page-title-wrap::before,.scroll-page .page-title-wrap::after{content:"";width:52px;height:1px;background:var(--silk);position:absolute;top:48%;left:0}.scroll-page .page-title-wrap::after{left:auto;right:0}.page-title-en{font:italic 14px/1.8 var(--roman);letter-spacing:3px;color:var(--ink-light);margin-top:10px}.scroll-container{position:relative;background:var(--rice-paper-warm);border:1px solid var(--line);border-top:2px solid var(--vermilion);border-bottom:2px solid var(--gamboge);padding:44px 50px;box-shadow:0 8px 32px rgba(44,44,44,.04)}.seal{position:absolute;top:-10px;right:-9px;width:68px;height:76px;border:3px double var(--vermilion);color:var(--vermilion);opacity:.16;font:24px/1.2 var(--serif);letter-spacing:3px;padding:8px 12px;transform:rotate(12deg);pointer-events:none}.section-label{display:flex;align-items:center;gap:14px;margin-bottom:28px}.section-num{font:13px/1.8 var(--roman);color:var(--vermilion);letter-spacing:2px}.section-title{font-size:17px;letter-spacing:3px}.section-title-en{margin-left:auto;font:11px/1.8 var(--roman);color:var(--ink-light);letter-spacing:2px}.module-divider{height:1px;background:var(--silk);margin:38px 0}.field{display:block;margin-bottom:24px}.field-label{display:block;border-left:2px solid var(--gamboge);padding-left:12px;font-size:13px;letter-spacing:2px;margin-bottom:12px;color:var(--ink-light)}.input-field,.textarea-field,.select-field{width:100%;padding:13px 17px;border:1px solid var(--silk);background:var(--field);color:var(--ink);font-size:14px;line-height:1.8;border-radius:0}.textarea-field{min-height:120px;resize:vertical}.input-field:focus,.textarea-field:focus,.select-field:focus{border-color:var(--gamboge);outline:2px solid rgba(232,176,4,.2);outline-offset:0}.hint-text{font-size:12px;color:var(--ink-light);margin-top:7px;line-height:1.8}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.tag-group{display:flex;flex-wrap:wrap;gap:10px}.domain-choice{position:relative}.domain-choice input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}.domain-choice span{display:block;padding:9px 15px;border:1px solid var(--silk);background:var(--field);color:var(--ink-light);font-size:13px;letter-spacing:1px}.domain-choice input:checked+span{border-color:var(--vermilion);background:rgba(200,60,35,.04);color:var(--vermilion)}.domain-choice input:focus-visible+span{outline:2px solid var(--vermilion);outline-offset:3px}.form-summary{padding:18px 20px;border-left:3px solid var(--gamboge);background:var(--field);font-size:13px;color:var(--ink-light);margin-bottom:24px}.form-actions{position:static;margin-top:28px;border-top:1px solid var(--silk);padding-top:20px;display:flex;justify-content:space-between;gap:16px;align-items:center}.form-actions .btn{margin-left:auto}.form-feedback{margin-top:18px}.notice,.error-panel,.empty-panel,.loading-panel{padding:20px 24px;border:1px solid var(--line);background:var(--field);font-size:13px;line-height:1.9;margin:16px 0;color:var(--ink-light)}.notice{border-left:3px solid var(--gamboge)}.error-panel{border-left:3px solid var(--vermilion);color:var(--ink)}.error-panel strong{color:var(--vermilion)}.error-actions{margin-top:12px}.success-panel{border-left:3px solid var(--jade);color:var(--jade)}.loading-panel::before{content:"◌";margin-right:10px;color:var(--vermilion)}.state-tag{display:inline-block;font-size:11px;letter-spacing:1px;padding:3px 10px;border:1px solid var(--line);color:var(--ink-light);background:var(--field)}.state-tag.open,.state-tag.active,.state-tag.approved,.state-tag.completed{color:var(--jade);border-color:rgba(82,112,82,.35)}.state-tag.delivered,.state-tag.submitted{color:var(--vermilion);border-color:rgba(200,60,35,.25)}
.board-stats{display:flex;gap:1px;background:var(--silk);margin:0 0 28px}.stat-card{flex:1;padding:18px 22px;background:var(--rice-paper-warm)}.stat-value{font:25px/1.5 var(--roman);color:var(--ink)}.stat-label{font-size:11px;letter-spacing:2px;color:var(--ink-light)}.orders-list{display:flex;flex-direction:column;gap:20px}.order-card{background:var(--rice-paper-warm);border:1px solid var(--line);border-left:4px solid var(--gamboge);padding:24px 28px}.order-card.selected{border-left-color:var(--vermilion)}.order-top-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:12px}.order-tags{display:flex;gap:8px;flex-wrap:wrap}.tag-domain{font-size:11px;padding:3px 10px;background:rgba(232,176,4,.1);color:var(--ink-light)}.order-question{font-size:17px;letter-spacing:1px;line-height:1.8;margin-bottom:10px}.order-summary{font-size:13px;color:var(--ink-light);line-height:1.9;white-space:pre-wrap}.order-meta{display:flex;flex-wrap:wrap;gap:18px;color:var(--ink-light);font-size:12px;margin-top:15px}.amount{font:21px/1.5 var(--roman);color:var(--vermilion);white-space:nowrap}.amount small{font:11px/1.5 var(--serif);margin-left:5px;color:var(--ink-light)}.detail-sheet{background:var(--rice-paper-warm);border:1px solid var(--line);padding:28px 32px;margin-bottom:24px}.detail-section{padding:24px 0;border-bottom:1px solid var(--silk)}.detail-section:first-child{padding-top:0}.detail-section:last-child{border-bottom:0;padding-bottom:0}.detail-label{font-size:12px;letter-spacing:2px;color:var(--ink-light);margin-bottom:8px}.detail-text{font-size:14px;white-space:pre-wrap;line-height:1.9}.private-note{font-size:12px;color:var(--vermilion);margin:0 0 10px}.record-list{display:flex;flex-direction:column;gap:14px;margin:18px 0}.record{background:var(--field);border:1px solid var(--silk);padding:16px 20px}.record-meta{font-size:11px;color:var(--ink-light);margin-bottom:8px;display:flex;gap:12px;flex-wrap:wrap}.record-text{white-space:pre-wrap;font-size:14px;line-height:1.9}.record-form{margin-top:15px;border-top:1px solid var(--silk);padding-top:20px}.record-form .field{margin-bottom:14px}.compact-form{padding:24px;background:var(--field);border:1px solid var(--silk);margin-top:20px}.review-score{font-size:17px;color:var(--vermilion)}.table-wrap{overflow-x:auto;border:1px solid var(--line);background:var(--field)}table{border-collapse:collapse;width:100%;font-size:12px;min-width:560px}th,td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--silk);font-weight:400}th{background:var(--rice-paper-warm);letter-spacing:1px}td{vertical-align:top}.metadata-id{font-size:11px;max-width:180px;overflow-wrap:anywhere}.preview-sheet{padding:24px;border:1px dashed var(--vermilion);background:var(--field);margin:20px 0}.preview-sheet h2{margin-bottom:8px}.preview-sheet .detail-text{margin-top:18px}.revision-select{max-width:220px}.login-page{max-width:570px;margin:auto;padding:64px 30px 80px}.login-page .page-header{margin-bottom:30px}.login-page .scroll-container{padding:36px}.login-form .btn{width:100%}.login-hint{margin-top:20px;font-size:12px;color:var(--ink-light)}
.portal{--rice-paper:#f8f6f1;--rice-paper-warm:#f0ece3;--vermilion:#b5372b;--ink:#1a1a1a;--ink-light:#6a6352;--silk:#e6e0d1;--gamboge:#a0894a}.portal-container{max-width:1180px;margin:auto;padding:0 28px}.hero{padding:74px 0 90px}.hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center}.hero h1{font:600 clamp(44px,5.6vw,72px)/1.15 var(--serif);letter-spacing:.08em;color:var(--vermilion);margin:18px 0 22px}.hero-sub{font-size:17px;line-height:1.9;color:var(--ink-light);max-width:520px}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}.hero-meta{font-size:12px;color:var(--ink-light);margin-top:18px}.taiji-wrap{position:relative;padding:20px}.taiji-img{width:100%;height:auto;display:block;border-radius:50%;max-width:520px;margin:auto;border:1px solid var(--silk);box-shadow:0 12px 32px rgba(26,26,26,.06)}.taiji-seal{position:absolute;top:12px;right:12px;z-index:2;color:var(--vermilion);font-size:13px;font-weight:600;line-height:1.35;letter-spacing:4px;writing-mode:vertical-rl;opacity:1;padding:12px 8px;background:var(--rice-paper);border:1px solid var(--vermilion);box-shadow:0 6px 18px rgba(26,26,26,.08),inset 0 0 0 2px var(--rice-paper),inset 0 0 0 3px rgba(181,55,43,.35);border-radius:2px}.portal-section{padding:48px 0 76px;border-top:1px solid var(--silk)}.portal-section h2{font-size:28px;margin-bottom:12px;letter-spacing:4px}.portal-description{max-width:65ch;color:var(--ink-light);font-size:14px;white-space:pre-wrap}.teachers-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:32px}.teacher-card{padding:26px;background:var(--rice-paper-warm);border:1px solid var(--silk);border-radius:14px}.teacher-avatar{width:48px;height:48px;border-radius:50%;background:var(--vermilion);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:18px}.teacher-card h3{margin-bottom:10px}.teacher-card .order-summary{font-size:13px}.teacher-card .order-tags{margin:18px 0 0}.service-note{font-size:12px;color:var(--ink-light);padding-top:20px}.no-private{font-size:12px;color:var(--ink-light);margin:16px 0}.app-fatal{max-width:780px;margin:40px auto;padding:0 24px}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--rice-paper:#23231f;--rice-paper-warm:#2e2d26;--vermilion:#ee8068;--vermilion-deep:#a43120;--gamboge:#d6b650;--gamboge-light:#e8d48f;--ink:#eee9dc;--ink-light:#c2bbab;--silk:#4a453a;--seal-red:#f18a75;--jade:#aec9a0;--field:rgba(255,255,255,.035);--line:rgba(239,233,220,.14)}:root:not([data-theme=light]) .portal{--rice-paper:#23221d;--rice-paper-warm:#302d25;--vermilion:#ee8068;--ink:#eee9dc;--ink-light:#c2bbab;--silk:#4a453a;--gamboge:#d6b650}:root:not([data-theme=light]) .simulation-bar{background:#141410;color:#eee9dc}}
:root[data-theme=dark]{--rice-paper:#23231f;--rice-paper-warm:#2e2d26;--vermilion:#ee8068;--vermilion-deep:#a43120;--gamboge:#d6b650;--gamboge-light:#e8d48f;--ink:#eee9dc;--ink-light:#c2bbab;--silk:#4a453a;--seal-red:#f18a75;--jade:#aec9a0;--field:rgba(255,255,255,.035);--line:rgba(239,233,220,.14)}:root[data-theme=dark] .portal{--rice-paper:#23221d;--rice-paper-warm:#302d25;--vermilion:#ee8068;--ink:#eee9dc;--ink-light:#c2bbab;--silk:#4a453a;--gamboge:#d6b650}:root[data-theme=dark] .simulation-bar{background:#141410;color:#eee9dc}
@media(max-width:1024px){.work-layout{grid-template-columns:1fr;padding:32px 28px;gap:20px}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:18px}.side-card{margin:0}.side-options{flex-direction:row;flex-wrap:wrap}.side-option{flex:1 0 auto;padding:9px 12px}.header-inner{padding:20px 28px}.hero-grid{gap:35px}.teachers-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:768px){.header-inner{align-items:flex-start;gap:16px;flex-wrap:wrap}.nav-right{justify-content:flex-start;gap:14px;width:100%}.actor-name{max-width:none}.brand-en{font-size:10px}.scroll-page{padding:36px 24px 52px}.scroll-page .page-header{margin-bottom:40px}.scroll-container{padding:32px 28px}.scroll-page .page-title-wrap::before,.scroll-page .page-title-wrap::after{width:24px}.hero{padding:40px 0 56px}.hero-grid{grid-template-columns:1fr;gap:28px}.taiji-wrap{max-width:380px;margin:auto;order:2}.hero h1{font-size:42px}.hero-sub{font-size:15px}.site-footer{padding:26px 28px}.board-stats{flex-wrap:wrap}.stat-card{flex:1 1 calc(50% - 1px)}.teachers-grid{grid-template-columns:1fr 1fr}.section-title-en{font-size:10px;letter-spacing:1px}.form-actions{align-items:flex-start;flex-direction:column}.form-actions .btn{width:100%;margin:0}.simulation-bar{padding:8px 18px}.page-title-wrap h1{font-size:25px;letter-spacing:5px}}
@media(max-width:520px){.header-inner{padding:18px 22px}.brand-name{font-size:20px}.nav-right{gap:13px}.nav-link{font-size:12px}.role-badge{margin-left:0}.work-layout{padding:26px 22px 40px}.sidebar{grid-template-columns:1fr;gap:12px}.side-card{padding:18px 16px}.side-title{margin-bottom:12px}.scroll-page{padding:32px 22px 45px}.scroll-container{padding:30px 22px}.section-title{font-size:15px;letter-spacing:2px}.section-label{gap:10px;align-items:flex-start}.section-title-en{max-width:90px}.field-grid{grid-template-columns:1fr;gap:0}.field-label{letter-spacing:1px}.input-field,.textarea-field,.select-field{padding:12px 14px;font-size:16px}.tag-group{gap:8px}.domain-choice span{padding:8px 12px;font-size:12px}.order-card{padding:20px 20px}.order-question{font-size:16px}.detail-sheet{padding:22px}.detail-text{font-size:14px}.page-header{margin-bottom:22px;gap:15px}.page-actions{width:100%}.page-actions .btn{flex:1}.teachers-grid{grid-template-columns:1fr}.portal-container{padding:0 22px}.hero h1{font-size:38px}.hero-actions .btn{width:100%}.taiji-wrap{max-width:300px}.record{padding:14px 16px}.compact-form{padding:20px}.login-page{padding:34px 22px 50px}.login-page .scroll-container{padding:28px 22px}.form-summary{padding:15px 16px}.button-row .btn{flex:1 0 auto}.site-footer{padding:24px 22px}.notice,.error-panel,.empty-panel,.loading-panel{padding:18px}.stat-card{padding:14px 18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .btn-primary,:root:not([data-theme=light]) .teacher-avatar{background:#a43120;color:#fff}}
:root[data-theme=dark] .btn-primary,:root[data-theme=dark] .teacher-avatar{background:#a43120;color:#fff}
.request-area{max-width:720px;margin:auto}.request-area>.page-header{display:block;text-align:center;margin:8px 0 44px}.request-area>.page-header>.page-title-wrap{border:0;padding:0}.request-area>.page-header .page-desc{margin:12px auto 0}.recovery-warning{margin:0;padding:16px 24px;border-left:3px solid var(--gamboge);background:var(--rice-paper-warm);font-size:12px}.recovery-warning .button-row{margin-top:10px}
.session-dialog{width:min(520px,calc(100vw - 36px));max-height:calc(100dvh - 40px);overflow:auto;padding:32px;border:1px solid var(--vermilion);border-top:3px solid var(--vermilion);background:var(--rice-paper-warm);color:var(--ink);box-shadow:0 20px 70px rgba(0,0,0,.3)}.session-dialog::backdrop{background:rgba(20,18,14,.72)}.session-dialog h2{margin-bottom:12px}.session-dialog form{margin-top:22px}.session-dialog .button-row .btn{width:100%}
.configured-nav{display:flex;flex-wrap:wrap;gap:14px}

/* Quiet chrome keeps the paper, vermilion and gold identity around the content. */
.simulation-bar{position:relative;z-index:30;display:flex;align-items:center;justify-content:center;gap:24px;background:var(--rice-paper-warm);color:var(--ink-light);padding:4px 24px;letter-spacing:0}
.simulation-bar strong{color:var(--seal-red);font-family:var(--serif)}
.environment-details>summary{cursor:pointer;min-height:32px;display:list-item;align-content:center;text-align:left}
.environment-details>p{position:absolute;inset-inline-end:24px;top:100%;width:min(360px,calc(100vw - 40px));padding:18px 20px;text-align:left;background:var(--rice-paper);border:1px solid var(--line);box-shadow:0 8px 24px rgba(0,0,0,.1);color:var(--ink);font-size:13px}
.header-inner{padding-block:18px;gap:20px}
.nav-right{gap:16px}
.nav-link{display:inline-flex;align-items:center;min-height:36px;letter-spacing:0}
.nav-link[aria-current=page]{font-weight:600}
.account-info{display:flex;align-items:center;gap:8px;padding-inline-start:16px;border-inline-start:1px solid var(--line)}
.account-info .role-badge{background:var(--rice-paper-warm);color:var(--ink-light);letter-spacing:0}
.theme-btn{min-height:36px;border-color:var(--line)}
.work-layout{grid-template-columns:210px minmax(0,1fr);gap:36px;padding-top:28px}
.workspace-sidebar .side-card{padding:8px 0;border:0;background:transparent}
.workspace-sidebar .side-title{border:0;padding:0 14px;letter-spacing:1px;margin-bottom:12px;color:var(--ink-light);font-size:12px}
.workspace-sidebar .side-option{min-height:44px;font-size:14px;letter-spacing:0;padding:10px 14px}
.workspace-sidebar .side-option.active{background:var(--rice-paper-warm);font-weight:600}
.main-content>.expanded-view>.page-title-wrap,.main-content>.page-title-wrap{margin-bottom:20px}
.page-title-wrap h1{letter-spacing:2px;font-size:28px}
.btn{letter-spacing:.5px}
.btn-secondary{border-color:transparent;background:var(--rice-paper-warm);color:var(--ink)}
.btn-secondary:hover{background:var(--silk)}
summary{cursor:pointer}
summary:focus-visible{outline:2px solid var(--vermilion);outline-offset:4px}
.hero{padding-block:58px 64px}
.hero h1{font-size:clamp(40px,5vw,64px);margin-top:0}
.hero-grid{gap:56px}
.hero-sub{max-width:32em}
.portal-section{padding-block:40px 56px}
.teacher-card .service-note{padding-top:14px;margin-bottom:14px}
.site-footer{padding-block:22px;font-size:12px}
@media(max-width:1024px){
  .work-layout{grid-template-columns:1fr;gap:24px}
  .workspace-sidebar{display:block;min-width:0}
  .workspace-sidebar .side-title{display:none}
  .workspace-sidebar .side-options{flex-wrap:nowrap;overflow-x:auto;gap:4px;padding:4px 4px 8px;scroll-padding:4px}
  .workspace-sidebar .side-option{flex:0 0 auto;border-left:0;border-bottom:2px solid transparent;white-space:nowrap}
  .workspace-sidebar .side-option.active{border-bottom-color:var(--vermilion)}
}
@media(max-width:768px){
  .simulation-bar{gap:16px;padding-inline:20px}
  .environment-details>summary{min-height:44px}
  .header-inner{padding-block:16px}
  .nav-right{gap:8px 14px}
  .nav-link,.theme-btn,.quiet-btn{min-height:44px}
  .account-info{padding-inline-start:0;border:0}
  .hero{padding-block:36px 44px}
  .hero-grid{gap:24px}
  .taiji-wrap{max-width:280px}
  .page-title-wrap h1{font-size:25px;letter-spacing:1px}
}

/* Shared forms: labels lead, help stays beside its control. */
.compact-form .field-label,.login-form .field-label{border:0;padding:0;font-size:14px;letter-spacing:0;color:var(--ink)}
.compact-form .field,.login-form .field{margin-bottom:20px}
.ui-status-line{display:flex;flex-wrap:wrap;gap:8px 16px;margin-block:12px;color:var(--ink);font-size:14px}
.ui-record-meta{font-size:12px;color:var(--ink-light);overflow-wrap:anywhere}
.ui-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-block:16px}
.scroll-page .detail-text{max-width:65ch;line-height:1.9;white-space:pre-wrap}
@media(max-width:600px){.compact-form input,.compact-form select,.compact-form textarea,.login-form input,.login-form select{font-size:16px}}

/* Native disclosures remain comfortable keyboard and touch targets. */
main details>summary{min-height:44px;align-content:center}

/* Shared public navigation in every app.js page; no fixed footer. */
.site-footer-brand{margin:0 0 8px}.site-footer-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 24px;margin:0 auto 8px}.site-footer-nav a{display:inline-flex;align-items:center;min-height:44px;color:inherit;overflow-wrap:anywhere}.site-footer>.hint-text{max-width:70ch;margin:0 auto;line-height:1.7}
