:root{--ink:#243b35;--muted:#7c8580;--green:#204d42;--green-soft:#e9f0eb;--paper:#f7f8f4;--border:#e3e7df;--amber:#a66e25;--amber-soft:#fbf4e6;--white:#fff;--red:#a4423b;--radius:13px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible{outline:3px solid #a4c3b5;outline-offset:3px}input:focus,select:focus,textarea:focus{outline:2px solid #a4c3b5;outline-offset:1px}h1,h2,h3,p{margin:0}h1{font-size:31px;line-height:1.4;letter-spacing:-1px;font-weight:650}h2{font-size:17px;line-height:1.5;font-weight:650}h3{font-size:16px}input,select,textarea{width:100%;border:1px solid #dbe1d8;border-radius:7px;background:#fff;padding:10px 12px;color:var(--ink);min-height:43px}input::placeholder,textarea::placeholder{color:#a3aaa4}textarea{resize:vertical}input[type=checkbox]{width:18px;height:18px;min-height:18px;accent-color:var(--green);padding:0;cursor:pointer}input:disabled,select:disabled{background:#f1f3ee;color:#9a9f9b}.sidebar{width:236px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--border);z-index:20;display:flex;flex-direction:column;padding:33px 20px 24px}.brand{display:flex;gap:11px;align-items:center;padding:0 5px;font-size:19px;font-weight:650;letter-spacing:.4px}.brand-mark{width:39px;height:43px;background:var(--green);border-radius:10px;color:white;font-family:serif;font-size:25px;display:grid;place-items:center;box-shadow:0 4px 10px #204d4214}.brand-sub{display:block;font-size:8px;letter-spacing:1.8px;color:var(--muted);font-weight:500;line-height:1.8}.side-caption{font-size:11px;color:#a1a9a2;letter-spacing:1px;margin:44px 15px 13px}.nav-item{display:flex;align-items:center;width:100%;gap:12px;padding:13px 13px;background:none;border:0;border-radius:8px;text-align:left;color:#6f7d74;font-weight:500;margin-bottom:7px}.nav-item:hover{background:#f5f7f3}.nav-item.active{color:var(--green);background:var(--green-soft);font-weight:650}.nav-icon{font-size:11px;letter-spacing:.3px;opacity:.65}.nav-count{margin-left:auto;font-size:10px;background:#fff;padding:0 6px;border-radius:4px;min-width:20px;text-align:center}.side-bottom{margin-top:auto;padding:20px 9px 0;color:var(--muted);font-size:11px;border-top:1px solid var(--border)}.side-bottom p{margin:8px 0 12px;line-height:1.8}.save-dot{display:inline-block;width:6px;height:6px;background:#739b80;border-radius:50%;margin-right:7px}.text-button{border:0;background:transparent;color:var(--green);padding:0;font-size:12px;cursor:pointer}.restore-label{margin-left:14px}.workspace{margin-left:236px}.topbar{height:77px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 46px;background:#ffffff8a;font-size:12px}.topbar-school{font-size:11px;letter-spacing:1.6px;color:var(--muted)}.topbar-divider{margin:0 16px;color:#c5cdc5}.topbar-right{display:flex;align-items:center;gap:19px}.local-tag{color:#8a968d;font-size:11px}.avatar{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:#e6e9df;color:#6d7764;font-size:11px;font-weight:650}main{max-width:1580px;margin:0 auto;padding:43px 46px 40px;min-height:calc(100vh - 141px)}.page{display:none}.page.active{display:block}.page-heading{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:31px}.eyebrow{font-size:10px;color:#8b998d;letter-spacing:1.8px;font-weight:600;display:block;margin-bottom:10px}.page-heading p{color:var(--muted);margin-top:11px;font-size:13px}.button{display:inline-flex;align-items:center;justify-content:center;gap:15px;padding:11px 17px;border-radius:7px;min-height:43px;font-size:12px;font-weight:600;border:1px solid transparent;white-space:nowrap;line-height:1.6;cursor:pointer}.button.primary{background:var(--green);color:#fff}.button.primary:hover{background:#163f35}.button.secondary{background:#fff;border-color:var(--border);color:#53685c}.button.secondary:hover{background:#f8faf5}.button.light{background:#fff;color:var(--green);border-color:#dbe5da;justify-content:space-between;width:100%}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.summary-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:20px 23px 18px}.summary-card>span{font-size:12px;color:#859084}.summary-card strong{font-size:30px;font-weight:550;display:block;line-height:1.5;letter-spacing:-.5px;margin-top:5px}.summary-card small{font-size:11px;letter-spacing:0;color:#97a093;font-weight:400;margin-left:6px}.summary-card p{font-size:10px;color:#a0a79b;margin-top:5px}.mini-progress{height:3px;border-radius:3px;background:#eef1ea;margin:15px 0 7px}.mini-progress i{display:block;height:100%;background:#8ca78f;border-radius:3px;transition:width .3s}.overview-columns{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(255px,1fr);gap:25px}.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:25px 27px;margin-bottom:23px}.card-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:21px}.muted{color:var(--muted);font-size:11px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#637268}.wide{grid-column:1/-1}.empty-field{display:none}.form-grid .field:has(#exam-year){grid-column:1/-1;width:48%}.file-cards{display:grid;gap:12px}.file-card{display:flex;gap:16px;align-items:center;padding:19px 17px;border:1px dashed #d6dfd1;border-radius:9px;transition:background .15s}.file-card:hover,.file-card.drag-over{background:#f5f8f2}.file-card.loaded{border-style:solid;background:#fcfdf9}.file-icon{width:40px;flex-shrink:0;height:45px;background:#eef3e9;border-radius:7px;display:grid;place-items:center;color:#78936d;font-size:9px;font-weight:650;letter-spacing:.4px}.file-icon.pdf{background:#f7eee9;color:#ad8872}.file-content{flex:1;min-width:0}.file-content strong{display:block;font-size:13px;font-weight:550}.file-content p{font-size:10px;color:#9ca596;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:330px}.file-card .file-action{border:1px solid #e2e7dd;padding:6px 11px;border-radius:5px;font-size:11px;background:white;cursor:pointer;white-space:nowrap}.file-remove{border:0;background:none;color:#9a9f96;padding:4px;font-size:18px}.rule-highlight{background:#edf2e8;border:1px solid #e0e8da;padding:25px;border-radius:var(--radius);margin-bottom:23px;position:relative}.highlight-icon{width:33px;height:33px;border-radius:50%;background:#dce8d6;display:grid;place-items:center;color:#537d4f;font-size:15px;margin-bottom:20px}.rule-highlight h2{font-size:23px}.rule-highlight p{font-size:12px;color:#798773;line-height:1.9;margin:12px 0 21px}.rule-highlight .eyebrow{font-size:9px;margin-bottom:6px}.compact{padding:22px}.compact .card-heading{margin-bottom:20px}.steps{list-style:none;padding:0;margin:0;display:grid;gap:20px}.steps li{display:flex;gap:12px}.steps li>span{width:22px;height:22px;display:grid;place-items:center;border:1px solid var(--border);border-radius:50%;font-size:10px;color:#87917e;flex-shrink:0;margin-top:2px}.steps strong{font-size:12px;font-weight:550}.steps p{font-size:10px;color:#99a08f;line-height:1.8;margin-top:5px}.template-link{display:flex;align-items:center;gap:12px;padding:15px 17px;border:1px solid var(--border);border-radius:9px;background:white}.template-link strong{display:block;font-size:11px;font-weight:600}.template-link small{display:block;font-size:10px;color:#96a08e;margin-top:2px}.template-link>span:last-child{margin-left:auto}.file-icon.small{width:32px;height:36px;font-size:8px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 20px}.toolbar-group{display:flex;gap:10px;align-items:center}.file-label{position:relative}.notice{border:1px solid #eee6d6;background:var(--amber-soft);border-radius:8px;padding:13px 17px;font-size:12px;line-height:1.8;color:#9b8055;margin-bottom:23px}.notice strong{font-weight:650}.notice.green{background:#edf3ec;border-color:#dfe8da;color:#75896b}.data-card{padding:0;overflow:hidden}.table-toolbar{padding:22px 24px;display:flex;justify-content:space-between;align-items:center;gap:20px}.count-pill{display:inline-block;font-size:10px;color:#7d8b77;background:#eef3e9;padding:1px 7px;border-radius:5px;margin-left:8px;vertical-align:middle}.search-input{width:210px;font-size:12px;min-height:37px;padding:8px 11px}.table-toolbar select{font-size:11px;width:auto;min-height:37px;padding:7px 28px 7px 10px}.table-scroll{overflow:auto}.data-table{border-collapse:collapse;width:100%;white-space:nowrap;text-align:left}.data-table th{font-size:11px;color:#8c9784;font-weight:500;background:#f7f9f3;padding:12px 21px;border-block:1px solid var(--border)}.data-table td{font-size:12px;padding:16px 21px;border-bottom:1px solid #edf0e9;vertical-align:middle}.data-table tbody tr:hover{background:#fafcf7}.data-table .teacher-code{font-weight:650;letter-spacing:.3px}.data-table small{display:block;color:#9aa38f;font-size:10px}.data-table .notes-cell{min-width:130px;max-width:220px;white-space:normal;font-size:11px;color:#7e8a77}.pill{font-size:10px;padding:4px 7px;border-radius:4px;display:inline-block;background:#edf2e7;color:#768a65}.pill.soft{background:#f9f1e2;color:#a58a59}.icon-button{border:0;background:transparent;font-size:21px;line-height:1;padding:8px;color:#88917e;border-radius:5px}.icon-button:hover{background:#eef2e9}.row-action{border:0;background:none;color:#6c8564;padding:4px;font-size:11px;margin-right:8px}.row-action.delete{color:#b08376}.actions-col{width:100px}.empty-state{padding:51px 20px 56px;text-align:center}.empty-symbol{width:43px;height:43px;border-radius:12px;background:#f1f5eb;color:#8ba07b;display:grid;place-items:center;font-size:24px;margin:0 auto 17px}.empty-state p{font-size:12px;color:#9aa28f;margin:9px 0 21px}.teacher-table input[type=text]{min-height:32px;padding:6px 9px;font-size:12px;width:120px}.teacher-table input[type=number]{min-height:32px;padding:6px 9px;font-size:12px;width:90px}.teacher-table .gc-row{background:#f3f6ed}.teacher-table td:has(input[type=checkbox]){text-align:center}.teacher-table th:has(+th){white-space:nowrap}.table-foot{font-size:11px;padding:15px 24px;color:#94a086;background:#fafcf7}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:23px}.setting-line{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 0;border-bottom:1px solid #e9eee2}.setting-line:last-child{border:0;padding-bottom:6px}.setting-line strong{font-size:13px;font-weight:600}.setting-line p{font-size:11px;color:#97a189;margin-top:5px;line-height:1.8}.status-label{font-size:10px;background:#eff3e9;border-radius:4px;padding:4px 8px;color:#839174;white-space:nowrap}.status-label.error{background:#fbefed;color:#a85f55}.number-input{width:80px;flex-shrink:0;text-align:right}.switch{width:35px!important;height:20px!important;appearance:none;background:#dfe6d7;border-radius:20px;position:relative;border:0;padding:0;transition:.2s;flex-shrink:0}.switch:checked{background:#547b4e}.switch:before{content:'';position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:white;transition:.2s}.switch:checked:before{transform:translateX(15px)}.handoff-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(270px,1fr);gap:25px}.export-card{padding:30px;border-radius:var(--radius);background:#e9f0e4;border:1px solid #dfe8d7;height:fit-content}.export-card h2{font-size:28px;line-height:1.6;margin:16px 0}.export-card p{font-size:12px;color:#829074;line-height:1.9}.export-card ul{padding-left:17px;margin:24px 0;color:#657c58;font-size:12px;line-height:2.3}.export-card .button{width:100%}.export-card small{display:block;font-size:10px;color:#8c997e;line-height:1.9;margin-top:16px}.review-line{display:flex;align-items:flex-start;gap:12px;font-size:12px;padding:12px 0;border-bottom:1px solid #eef1e8}.review-line:last-child{border:0}.review-marker{flex-shrink:0;width:19px;height:19px;border-radius:50%;background:#eaf2e5;color:#6a8b5b;display:grid;place-items:center;font-size:10px;margin-top:1px}.review-line.error .review-marker{background:#f9eae5;color:#ac7060}.review-line.warning .review-marker{background:#fcf0d9;color:#b08f50}.review-line.error{color:#a76b5d}.review-line.warning{color:#a88c5d}.review-summary{display:grid;grid-template-columns:140px 1fr;gap:14px;margin:0;font-size:12px}.review-summary dt{color:#98a28c}.review-summary dd{margin:0;overflow-wrap:anywhere}.mobile-only{display:none}footer{height:64px;padding:20px 46px;display:flex;justify-content:space-between;color:#a8af9f;font-size:10px;border-top:1px solid #e7ecdf}dialog{border:1px solid #e2e8d9;border-radius:15px;padding:29px;width:min(580px,calc(100vw - 32px));max-height:90vh;overflow:auto;color:var(--ink);box-shadow:0 25px 100px #203b3526}dialog::backdrop{background:#172b244d;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:25px}.dialog-heading h2{font-size:23px}.dialog-heading .eyebrow{margin-bottom:6px}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;border-top:1px solid var(--border);padding-top:20px;margin-top:23px}.checkbox-field{display:flex;gap:10px;align-items:center;font-size:12px}.form-error{font-size:12px;color:var(--red);margin-top:14px}#teachers-form>.muted{margin-top:12px}#toast{position:fixed;bottom:27px;left:calc(50% + 118px);transform:translateX(-50%) translateY(30px);padding:12px 22px;border-radius:8px;background:#254b3e;color:#fff;box-shadow:0 4px 25px #203d3426;opacity:0;transition:.2s;pointer-events:none;z-index:100;font-size:12px;max-width:min(600px,90vw)}#toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}#confirm-message{font-size:13px;line-height:1.9;color:#7a8770;white-space:pre-line}
@media(min-width:1500px){main{padding-inline:62px}.topbar{padding-inline:62px}.page-heading{margin-bottom:38px}.summary-grid{gap:20px}.overview-columns{gap:30px}}
@media(max-width:1150px){.sidebar{width:210px;padding-inline:14px}.workspace{margin-left:210px}.topbar{padding:0 28px}main{padding:32px 28px}.overview-columns{grid-template-columns:minmax(0,1.6fr) minmax(240px,1fr);gap:18px}.card{padding:22px}.summary-card{padding:17px}.summary-grid{gap:12px}h1{font-size:27px}.button{gap:10px}.file-card{gap:12px;padding:15px 12px}.file-content p{max-width:200px}.file-content strong{font-size:11px}.two-columns{gap:18px}.data-card{padding:0}.setting-line{gap:12px}.table-toolbar{flex-wrap:wrap}.toolbar{flex-wrap:wrap}#toast{left:calc(50% + 105px)}}
@media(max-width:900px){.sidebar{width:76px;padding:27px 12px}.brand{padding:0;justify-content:center}.brand>span:last-child,.side-caption,.nav-item .nav-count,.side-bottom{display:none}.nav-item{font-size:0;justify-content:center;padding:15px 10px;margin-top:9px}.nav-icon{font-size:12px;opacity:1}.sidebar nav{margin-top:30px}.workspace{margin-left:76px}.overview-columns{grid-template-columns:1fr}.overview-aside{display:grid;grid-template-columns:1fr 1fr;gap:18px}.overview-aside .template-link{grid-column:1/-1}.rule-highlight{margin-bottom:0}.overview-aside .compact{margin-bottom:0}.handoff-grid{grid-template-columns:1fr 1fr}.two-columns{grid-template-columns:1fr}.page-heading{align-items:flex-start}.summary-card{padding:15px}.summary-card strong{font-size:25px}.summary-card p{font-size:9px}.summary-card small{font-size:10px}.summary-card>span{font-size:11px}#toast{left:calc(50% + 38px)}}
@media(max-width:620px){.sidebar{inset:auto 0 0 0;width:100%;height:65px;padding:0;background:#fff;border:0;border-top:1px solid var(--border)}.brand{display:none}.sidebar nav{margin:0;display:flex;height:100%}.nav-item{margin:0;border-radius:0;flex-direction:column;gap:1px;padding:8px 1px;font-size:9px;font-weight:500}.nav-item.active{background:#f0f5eb}.nav-icon{font-size:10px}.workspace{margin:0;padding-bottom:65px}.topbar{height:57px;padding:0 20px}.topbar-school{font-size:9px}.topbar-divider{margin:0 10px}.local-tag{font-size:9px}.topbar-right{gap:12px}main{padding:27px 18px}.page-heading{flex-direction:column;gap:20px;margin-bottom:24px}.page-heading>.button{align-self:flex-start}.page-heading h1{font-size:27px}.page-heading p{font-size:12px;line-height:1.9}.eyebrow{font-size:9px;letter-spacing:1.4px}.summary-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}.summary-card{padding:16px 18px}.summary-card strong{font-size:27px}.summary-card p{font-size:9px}.card{padding:21px 18px;margin-bottom:18px}.card-heading{gap:8px}.card-heading h2{font-size:15px}.muted{font-size:10px}.overview-columns{gap:0}.overview-aside{grid-template-columns:1fr;gap:18px}.overview-aside .template-link{grid-column:auto}.rule-highlight{padding:23px}.overview-aside .compact{padding:21px}.file-content p{max-width:160px}.file-card{gap:10px;padding:16px 11px}.file-content strong{font-size:11px}.file-icon{width:32px;height:39px;font-size:8px}.file-card .file-action{padding:5px 8px;font-size:10px}.file-remove{padding:1px}.toolbar{padding:14px}.toolbar-group{gap:7px;flex-wrap:wrap}.toolbar .button{font-size:10px;padding:8px 10px;min-height:37px}.notice{font-size:11px;padding:13px 15px}.data-card{padding:0}.table-toolbar{padding:18px;gap:13px}.table-toolbar h2{font-size:15px}.search-input{width:180px}.table-toolbar .toolbar-group{width:100%}.table-toolbar .toolbar-group .search-input{flex:1;width:130px}.table-toolbar select{font-size:10px;max-width:130px}.data-table th,.data-table td{padding:12px 15px}.table-foot{padding:13px 18px;font-size:10px}.empty-state{padding:40px 18px}.empty-state p{font-size:11px}.two-columns{gap:0}.handoff-grid{grid-template-columns:1fr;gap:0}.export-card{padding:24px}.export-card h2{font-size:25px}.review-summary{grid-template-columns:100px 1fr;gap:12px;font-size:11px}.review-line{font-size:11px}.form-grid{gap:15px}.field{font-size:11px}.setting-line p{font-size:10px}.setting-line strong{font-size:12px}footer{padding:20px;font-size:9px}.mobile-only{display:block}dialog{padding:24px 20px}.dialog-heading h2{font-size:21px}#toast{left:50%;bottom:80px}.form-grid .field:has(#exam-year){width:100%}.form-grid .empty-field{display:none}}
.confirmation-box{display:flex;align-items:center;gap:11px;font-size:12px;border:1px solid #dce7d4;background:#eef4e8;padding:16px 20px;border-radius:8px;margin:20px 0}.confirmation-box input{flex-shrink:0}.result-panel{display:none}.result-panel.active{display:block}.result-tab.active{background:var(--green)!important;color:white!important;border-color:var(--green)!important}.printout-scroll{overflow:auto;padding:16px}.printout-scroll .printout-section{min-width:1120px}.notice details,.notice li{line-height:1.8}.notice ul{padding-left:19px;margin:10px 0 0}.data-table .teacher-code button{font:inherit}#page-handoff .toolbar{padding:15px 18px}.summary-card>span,.muted,.file-content p,.summary-card p,.field,.rule-highlight p,.steps p,.template-link small{color:#75816e}
@media print{.sidebar,.topbar,.page-heading,.export-card,footer,button,.notice{display:none!important}.workspace{margin:0}main{padding:0}.page{display:none!important}#page-handoff{display:block!important}.handoff-grid{display:block}.card{break-inside:avoid;box-shadow:none}.card-heading:before{content:'監考安排資料摘要';font-weight:bold;margin-right:20px}}

.form-grid .field:has(#exam-year){grid-column:auto;width:100%}.mobile-backup{display:none}@media(max-width:900px){.mobile-backup{display:flex;gap:12px}.local-tag{display:none}}
