:root{font-family:system-ui,-apple-system,"PingFang TC","Noto Sans CJK TC",sans-serif;color:#272522;background:#f3f1ed;font-synthesis:none}*{box-sizing:border-box}body{margin:0}.top{height:64px;background:#282622;color:white;display:flex;align-items:center;justify-content:space-between;padding:0 max(calc((100vw - 1180px)/2),24px);position:sticky;top:0;z-index:5}.brand{font-size:19px;color:white;text-decoration:none;font-weight:700}.brand small{font-size:11px;font-weight:400;opacity:.75}.top button{color:white}main{max-width:1180px;margin:32px auto;padding:0 24px 60px}.panel{background:white;border:1px solid #dedad3;border-radius:12px;padding:24px;box-shadow:0 2px 8px #21190b0c;margin-bottom:20px}.narrow{max-width:480px;margin:8vh auto}.narrow h1{font-size:25px}h1{font-size:28px;margin:8px 0 4px}h2{font-size:20px;margin:0 0 14px}p{line-height:1.55}.muted{color:#77736c;margin:4px 0 12px}.title-row{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.actions,.tabs,.menu{display:flex;gap:8px;align-items:center;flex-wrap:wrap}button{font:inherit;border:1px solid #d3cec4;background:#fff;color:#333;border-radius:7px;padding:9px 14px;cursor:pointer}button:hover{background:#f1efe9}button.primary{background:#4d674f;border-color:#4d674f;color:#fff}button.danger{color:#a32b27;border-color:#ddc2bf}.link{padding:3px 0;border:0;background:none;color:#456c50}.tabs,.menu{border-bottom:1px solid #e7e3dc;margin-bottom:16px}.tabs button,.menu button{border:0;border-radius:0;background:none;color:#6d6962}.tabs button.selected,.menu button.selected{color:#315b3a;border-bottom:2px solid #4d7955}.tabs button{padding:10px}.menu{gap:20px}.menu button{padding:12px 4px}.actions button{white-space:nowrap}label{display:flex;flex-direction:column;gap:7px;font-size:14px;margin:12px 0}input,select,textarea{font:inherit;border:1px solid #d7d2c8;border-radius:7px;padding:10px 11px;background:white;color:#292824}input:focus,select:focus,textarea:focus{outline:2px solid #a6bea7;border-color:#6b8a6f}form label input{width:100%}.narrow form>button{width:100%;margin-top:8px}.message{min-height:22px;color:#a33}.table-wrap{padding:0;overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:14px 16px;border-bottom:1px solid #eeeae4}th{font-size:13px;color:#777;background:#faf9f7}td .actions{gap:5px}td .actions button{padding:6px 10px;font-size:13px}.empty{text-align:center;padding:35px;color:#888}.badge{display:inline-block;background:#eeede6;border-radius:20px;padding:4px 10px;font-size:13px;color:#67645d}.editor-top{display:flex;justify-content:space-between;align-items:center;gap:16px}.editor-top p{color:#777}.editor-pane textarea{width:100%;min-height:58vh;font:13px/1.5 ui-monospace,SFMono-Regular,monospace;resize:vertical}.front-grid{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:10px 20px;max-width:760px}.export-actions{padding:16px 0;border-bottom:1px solid #eee}.score-preview{padding:24px;min-height:40vh;font-family:"Noto Serif CJK TC","Songti TC",serif;background:#fffefc;white-space:normal}.preview-section{display:inline-block;vertical-align:top;width:calc(100% / var(--cols,2) - 16px);padding:12px;border:1px solid #bbb;margin:8px;break-inside:avoid}.preview-section h3{margin:0 0 10px}.preview-row{display:grid;grid-template-columns:1fr auto auto;gap:14px;padding:3px 0}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}dialog{border:0;border-radius:12px;max-width:min(600px,90vw);box-shadow:0 16px 80px #0004}dialog::backdrop{background:#17151177}code{background:#f1efea;padding:2px 5px;border-radius:4px}@media(max-width:700px){main{padding:0 12px}.top{padding:0 16px}.title-row,.editor-top{align-items:flex-start;flex-direction:column}.front-grid{grid-template-columns:1fr}.panel{padding:16px}table{min-width:650px}}
@media print{body{background:white}.top,.menu,.title-row,.export-actions,#exportSave,#profileSelect,#profileName,#orientation,#columns{display:none!important}main{max-width:none;margin:0;padding:0}.panel{border:0;box-shadow:none;padding:0}.preview-section{border:0}.score-preview{padding:0}}

.role-permission-card{padding:16px}.role-permission-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:8px 0 14px}.role-permission-item{display:flex;flex-direction:row;align-items:flex-start;gap:6px;margin:0;padding:6px 7px;border:1px solid #e7e3dc;border-radius:6px;font-size:12px;line-height:1.3;cursor:pointer}.role-permission-item input{flex:0 0 auto;margin:1px 0 0}.role-permission-item:hover{background:#f7f6f2}@media(max-width:900px){.role-permission-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.role-permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.role-permission-card{padding:12px}}
#scoreOcrPromptDialog{width:min(900px,94vw);max-width:94vw}#scoreOcrPromptDialog form{min-width:0}#scoreOcrPromptText{display:block;width:min(840px,88vw);height:58vh;resize:vertical;font:13px/1.55 ui-monospace,SFMono-Regular,monospace}#scoreOcrPromptHelp{color:#666}

[hidden]{display:none!important}
