:root{color:#18211c;background:#f2f4f1;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-synthesis:none;letter-spacing:0;text-rendering:optimizeLegibility}.rich-editor{overflow:hidden;border:1px solid #bdc7c0;border-radius:5px;background:#fff}.rich-toolbar{display:flex;min-height:42px;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid #dfe5e0;background:#f6f8f6}.rich-toolbar button{min-width:34px;height:28px;padding:0 8px;border:1px solid #cbd4ce;border-radius:4px;background:#fff;color:#314038;cursor:pointer;font-size:12px}.rich-image-button{display:inline-flex;min-width:42px;height:28px;align-items:center;justify-content:center;padding:0 8px;border:1px solid #cbd4ce;border-radius:4px;background:#fff;color:#314038;cursor:pointer;font-size:12px}.rich-image-button input{position:absolute;width:1px;height:1px;opacity:0}.rich-content{min-height:220px;padding:16px;color:#253129;line-height:1.7;outline:none}.rich-content img{max-width:100%;height:auto;cursor:pointer}.benefit-editor{display:grid;gap:10px}.benefit-row{display:grid;align-items:end;grid-template-columns:minmax(0,1fr) 120px auto;gap:10px}.benefit-row label span{display:block;margin-bottom:5px;color:#536159;font-size:12px}.benefit-row input{width:100%;height:38px;padding:0 10px;border:1px solid #bdc7c0;border-radius:5px}.drag-column{width:48px}.drag-handle{width:48px;color:#748079;cursor:grab;font-size:16px;text-align:center!important}.detail-dialog{width:min(760px,100%)}.detail-sections{display:grid;gap:18px}.detail-sections section{padding-bottom:16px;border-bottom:1px solid #e6ebe7}.detail-sections h3{margin:0 0 10px;font-size:14px}.detail-sections dl{display:grid;margin:0;grid-template-columns:90px minmax(0,1fr);gap:7px 12px;font-size:13px}.detail-sections dt{color:#6b766f}.detail-sections dd{min-width:0;margin:0;overflow-wrap:anywhere}.attendee-detail{padding:12px;margin-top:10px;border:1px solid #e0e6e1;border-radius:5px}.attendee-detail>strong{display:block;margin-bottom:8px;font-size:13px}.course-structure{display:grid;gap:12px;padding:16px;border:1px solid #cfd8d2;border-radius:6px;background:#f8faf8}.structure-heading,.structure-session__head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.structure-heading p{margin:4px 0 0;color:#657168;font-size:12px}.structure-heading>span{flex:none;color:#276a40;font-size:12px;font-weight:700}.structure-session{padding:12px;border:1px solid #dce3de;border-radius:5px;background:#fff}.structure-session__head strong,.structure-session__head span{display:block}.structure-session__head span{margin-top:4px;color:#6a756e;font-size:12px}.price-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.price-chips button{min-height:30px;padding:0 9px;border:1px solid #bcd0c2;border-radius:4px;background:#eef7f0;color:#245b37;cursor:pointer;font-size:12px}.price-chips .add-price{border-style:dashed;background:#fff}.structure-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;border-top:1px solid #dbe2dd}.structure-form>strong,.structure-buttons{grid-column:1 / -1}.structure-form label span{display:block;margin-bottom:5px;color:#536159;font-size:12px}.structure-form input,.structure-form select{width:100%;height:36px;padding:0 9px;border:1px solid #bdc7c0;border-radius:5px;background:#fff}.structure-buttons{display:flex;justify-content:flex-end;gap:8px}@media(max-width:680px){.structure-form{grid-template-columns:1fr}.structure-heading,.structure-session__head{align-items:stretch;flex-direction:column}.detail-sections dl{grid-template-columns:72px minmax(0,1fr)}}*{box-sizing:border-box}html,body,#app{min-width:320px;min-height:100%;margin:0}body{min-height:100vh}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgb(38 105 66 / 20%);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.52}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.admin-shell{display:grid;min-height:100vh;grid-template-columns:228px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:22px 14px;color:#f6faf7;background:#1f2a24}.brand,.login-brand{display:flex;align-items:center;gap:11px}.brand{padding:0 8px 20px;border-bottom:1px solid rgb(255 255 255 / 12%)}.brand-mark{display:inline-grid;width:38px;height:38px;flex:0 0 38px;place-items:center;border-radius:6px;color:#173423;background:#a7ddb5;font-size:12px;font-weight:800}.brand strong,.brand span{display:block}.brand strong{font-size:15px}.brand span{margin-top:3px;color:#aebdb3;font-size:12px}.sidebar nav{display:grid;gap:3px;margin-top:18px}.sidebar nav a{min-height:40px;padding:10px 12px;border-radius:5px;color:#bdc9c0;font-size:14px;text-decoration:none}.sidebar nav a:hover,.sidebar nav a.router-link-active{color:#fff;background:#34473c}.workspace{min-width:0}.topbar{display:flex;min-height:76px;align-items:center;justify-content:space-between;padding:14px 28px;border-bottom:1px solid #dce2dc;background:#fff}.topbar h1,.module-header h2,.login-heading h1,.dialog-header h2{margin:3px 0 0;letter-spacing:0}.topbar h1{font-size:20px}.section-label{color:#647169;font-size:11px;font-weight:800;text-transform:uppercase}.account-area{display:flex;align-items:center;gap:14px}.environment-indicator{display:inline-flex;align-items:center;gap:7px;color:#536159;font-size:12px}.environment-indicator i{width:7px;height:7px;border-radius:50%;background:#2d7a48}.account-button{padding:6px 8px;border:0;color:#34433a;background:transparent;cursor:pointer;font-size:13px}.account-button:hover{color:#a22e2a}.workspace-content{padding:24px 28px 40px}.module-surface{min-height:520px;border:1px solid #d9dfda;border-radius:7px;background:#fff;box-shadow:0 3px 14px #1a291f0a}.module-header{display:flex;min-height:98px;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;border-bottom:1px solid #e3e8e4}.module-header h2,.dialog-header h2{font-size:18px}.module-header p{max-width:720px;margin:8px 0 0;color:#637067;font-size:13px;line-height:1.6}.status-badge{flex:0 0 auto;padding:5px 9px;border:1px solid #b9d6c1;border-radius:999px;color:#28603b;background:#eff8f1;font-size:11px;font-weight:800}.status-live:before{display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:#338153;content:""}.resource-tabs{display:flex;min-height:47px;align-items:end;gap:22px;padding:0 22px;overflow-x:auto;border-bottom:1px solid #e6ebe7}.resource-tab{min-height:47px;flex:0 0 auto;padding:0 1px;border:0;border-bottom:2px solid transparent;color:#69756e;background:transparent;cursor:pointer;font-size:13px;font-weight:700}.resource-tab:hover,.resource-tab.active{color:#225d37;border-bottom-color:#2d7848}.resource-intro{display:flex;align-items:baseline;gap:10px;padding:16px 22px 4px}.resource-intro strong{font-size:15px}.resource-intro span{color:#6a766e;font-size:12px}.resource-workbench{padding:14px 22px 22px}.policy-workbench{padding:14px 22px 24px}.policy-guidance{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 13px;margin-bottom:18px;border-left:3px solid #39744c;color:#435249;background:#f2f7f3;font-size:12px;line-height:1.55}.policy-guidance strong{color:#245a37}.policy-groups,.policy-group,.policy-list{display:grid}.policy-groups{gap:24px}.policy-group{gap:9px}.policy-group-heading{display:flex;align-items:center;justify-content:space-between}.policy-group-heading h3{margin:0;color:#25342b;font-size:14px}.policy-group-heading span{color:#78837b;font-size:11px}.policy-list{overflow:hidden;border:1px solid #dfe5e0;border-radius:6px}.policy-row{display:grid;grid-template-columns:minmax(280px,1fr) minmax(150px,.42fr) auto auto;align-items:center;gap:18px;min-height:92px;padding:14px 15px;border-bottom:1px solid #e5eae6}.policy-row:last-child{border-bottom:0}.policy-row:hover{background:#fafcf9}.policy-title-line{display:flex;align-items:center;gap:9px}.policy-title-line strong{color:#25342b;font-size:13px}.policy-key{color:#7a857e;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.policy-main p{max-width:680px;margin:6px 0 0;color:#69756d;font-size:12px;line-height:1.55}.policy-current{display:grid;gap:4px}.policy-current>span,.policy-current small{color:#7a857e;font-size:10px}.policy-current strong{color:#34433a;font-size:12px}.policy-state{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;width:148px}.policy-dialog{width:min(100%,720px)}.policy-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 18px}.policy-description,.policy-enable,.policy-form .inline-error{grid-column:1 / -1}.policy-description{margin:0;color:#647169;font-size:12px;line-height:1.6}.policy-enable{display:flex;min-height:64px;align-items:center;justify-content:space-between;gap:20px;padding:12px 14px;border:1px solid #dbe3dd;border-radius:6px;background:#f7faf7;cursor:pointer}.policy-enable span,.policy-enable strong,.policy-enable small{display:block}.policy-enable strong{color:#2c3b32;font-size:13px}.policy-enable small{margin-top:4px;color:#748078;font-size:11px}.policy-enable input,.field .policy-boolean input{position:relative;width:38px;height:20px;flex:0 0 38px;padding:0;border:1px solid #aeb9b1;border-radius:999px;appearance:none;background:#dfe5e1;cursor:pointer;transition:border-color .16s ease,background-color .16s ease}.policy-enable input:before,.field .policy-boolean input:before{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #14251b47;content:"";transition:transform .16s ease}.policy-enable input:checked,.field .policy-boolean input:checked{border-color:#23623c;background:#2d7447}.policy-enable input:checked:before,.field .policy-boolean input:checked:before{transform:translate(18px)}.policy-enable input:focus-visible,.field .policy-boolean input:focus-visible{outline:3px solid rgb(45 116 71 / 22%);outline-offset:2px}.policy-enable input:disabled,.field .policy-boolean input:disabled{cursor:not-allowed;opacity:.55}.policy-boolean{display:flex;min-height:39px;align-items:center;gap:9px;color:#536159;font-weight:500}@media(max-width:900px){.policy-row{grid-template-columns:minmax(0,1fr) auto}.policy-current{display:none}.policy-state{grid-column:1;grid-row:2;justify-content:flex-start;width:auto}.policy-row>.button{grid-column:2;grid-row:1 / 3}}@media(max-width:600px){.policy-workbench{padding-right:14px;padding-left:14px}.policy-guidance{grid-template-columns:1fr auto}.policy-guidance>span{grid-column:1 / -1;grid-row:2}.policy-row{gap:12px;padding:13px}.policy-title-line{align-items:flex-start;flex-direction:column;gap:4px}.policy-form{grid-template-columns:1fr}.policy-description,.policy-enable,.policy-form .inline-error{grid-column:1}}.rule-notice{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;margin-bottom:14px;border-left:3px solid #c69331;color:#675529;background:#fff9e9;font-size:12px;line-height:1.55}.rule-notice strong{flex:0 0 auto;color:#745719}.resource-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.filter-bar{display:flex;min-width:0;align-items:center;gap:8px}.search-field input,.select-field select,.field input,.field select,.field textarea{border:1px solid #bdc7c0;border-radius:5px;color:#1f2923;background:#fff;outline:none}.search-field input{width:260px;height:36px;padding:0 10px}.select-field select{width:150px;height:36px;padding:0 28px 0 9px}.search-field input:focus,.select-field select:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:#3d8055;box-shadow:0 0 0 3px #337c4d1c}.button{min-height:36px;padding:0 13px;border:1px solid transparent;border-radius:5px;cursor:pointer;font-size:13px;font-weight:700;white-space:nowrap}.button-primary{color:#fff;background:#276a40}.button-primary:hover:not(:disabled){background:#205735}.button-secondary{border-color:#b9c5bd;color:#314038;background:#fff}.button-secondary:hover:not(:disabled),.button-quiet:hover:not(:disabled){border-color:#8fa097;background:#f6f8f6}.button-quiet{border-color:transparent;color:#506057;background:transparent}.button-danger{color:#fff;background:#a93631}.button-danger:hover:not(:disabled){background:#8d2b27}.success-banner,.inline-error{padding:9px 11px;border-radius:5px;font-size:12px}.success-banner{margin:0 0 12px;color:#215d37;background:#eff8f1}.inline-error{margin:0;color:#8f2825;background:#fff0ef}.state-panel{display:grid;min-height:260px;place-items:center;align-content:center;padding:30px;color:#68736c;text-align:center}.state-panel strong{color:#28342c;font-size:15px}.state-panel p{max-width:520px;margin:8px 0 15px;font-size:13px;line-height:1.6}.state-error strong,.state-error p{color:#8f2b27}.spinner{width:24px;height:24px;margin-bottom:13px;border:3px solid #dce6df;border-top-color:#36794d;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.table-scroll{width:100%;overflow-x:auto;border:1px solid #dfe5e0;border-radius:5px}.data-table{width:100%;min-width:820px;border-collapse:collapse;font-size:12px}.data-table th,.data-table td{padding:11px 12px;border-bottom:1px solid #e6ebe7;text-align:left;vertical-align:middle}.data-table th{color:#526057;background:#f6f8f6;font-size:11px;font-weight:800;white-space:nowrap}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fafcf9}.action-column{width:1%;text-align:right!important}.row-actions{display:flex;min-width:112px;justify-content:flex-end;gap:8px;white-space:nowrap}.text-button{padding:3px 0;border:0;color:#27663e;background:transparent;cursor:pointer;font-size:12px}.text-danger{color:#a3312d}.text-warning{color:#8b661e}.table-status{display:inline-block;padding:3px 7px;border-radius:4px;font-size:11px;font-weight:700;white-space:nowrap}.status-positive{color:#23603a;background:#eaf6ed}.status-negative{color:#8b302c;background:#fff0ef}.status-pending{color:#70571f;background:#fff7df}.pagination{display:flex;min-height:50px;align-items:center;justify-content:space-between;color:#6a766e;font-size:12px}.pagination div{display:flex;gap:4px}.dialog-backdrop{position:fixed;z-index:50;inset:0;display:grid;place-items:center;padding:24px;background:#0f17128c}.dialog{width:min(100%,680px);max-height:calc(100vh - 48px);overflow:auto;border-radius:7px;background:#fff;box-shadow:0 24px 70px #07110a47}.dialog-compact{width:min(100%,480px)}.dialog-header,.dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px}.dialog-header{border-bottom:1px solid #e3e8e4}.dialog-footer{justify-content:flex-end;border-top:1px solid #e3e8e4;background:#fafbfa}.dialog-body{padding:20px}.icon-button{display:grid;width:34px;height:34px;place-items:center;padding:0;border:0;border-radius:4px;color:#657169;background:transparent;cursor:pointer;font-size:23px;line-height:1}.icon-button:hover:not(:disabled){background:#f1f4f1}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 18px}.field{display:grid;gap:7px;color:#38453d;font-size:12px;font-weight:700}.field-wide{grid-column:1 / -1}.field b{color:#a8322e}.field input,.field select{width:100%;height:39px;padding:0 10px}.field textarea{width:100%;min-height:98px;padding:9px 10px;resize:vertical}.field small{color:#778179;font-weight:400;line-height:1.5}.image-uploader{display:grid;gap:10px;padding:12px;border:1px dashed #aebcb3;border-radius:5px;background:#f8faf8}.image-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.image-preview-single{grid-template-columns:minmax(0,320px)}.image-preview{position:relative;min-width:0;margin:0;overflow:hidden;border:1px solid #d5ddd7;border-radius:5px;background:#e9eeea;aspect-ratio:16 / 9}.image-preview img{display:block;width:100%;height:100%;object-fit:cover}.image-preview button{position:absolute;top:6px;right:6px;display:grid;width:26px;height:26px;place-items:center;padding:0;border:1px solid rgb(255 255 255 / 45%);border-radius:4px;color:#fff;background:#181f1bd1;cursor:pointer;font-size:18px;line-height:1}.image-upload-actions{display:flex;align-items:center;gap:12px}.image-upload-actions>span{color:#6e7a72;font-size:11px;font-weight:400}.image-upload-button{display:inline-flex;min-height:36px;align-items:center;cursor:pointer}.image-upload-button.disabled{cursor:not-allowed;opacity:.52}.image-upload-button input{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.upload-message{margin:0;color:#28623c;font-size:11px;font-weight:500;line-height:1.5}.question-editor{display:grid;gap:12px}.question-item{display:grid;gap:12px;padding:14px;border:1px solid #dce3de;border-radius:6px;background:#f8faf8}.question-heading,.question-settings{display:flex;align-items:center;justify-content:space-between;gap:14px}.question-heading strong{color:#26372d;font-size:13px}.question-label,.question-settings label{display:grid;gap:6px}.question-settings>label:first-child{min-width:180px}.question-settings .required-toggle{display:flex;align-items:center;gap:8px;cursor:pointer}.question-settings .required-toggle input{width:16px;height:16px;margin:0}.add-question-button{justify-self:start}.question-options{display:grid;gap:8px}.question-options>span{color:#536159;font-size:12px}.question-option-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.question-option-row input{width:100%;height:38px;padding:0 10px;border:1px solid #bdc7c0;border-radius:5px;background:#fff}@media(max-width:560px){.image-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.image-preview-single{grid-template-columns:1fr}.image-upload-actions{align-items:flex-start;flex-direction:column}.question-settings{align-items:stretch;flex-direction:column}.question-settings>label:first-child{min-width:0}}.confirm-message{margin:0;color:#27342c;font-size:15px;font-weight:700;line-height:1.55}.confirm-note{margin:12px 0 0;color:#6a756e;font-size:12px;line-height:1.6}.login-page{display:grid;min-height:100vh;place-items:center;padding:24px;background:#edf1ed}.login-panel{width:min(100%,410px);padding:30px;border:1px solid #d5ddd7;border-radius:7px;background:#fff;box-shadow:0 18px 45px #1c2d221a}.login-brand{padding-bottom:22px;border-bottom:1px solid #e3e8e4;color:#2a382f;font-size:14px;font-weight:700}.login-heading{margin:25px 0 21px}.login-heading h1{font-size:25px}.login-panel form{display:grid;gap:9px}.login-panel label{margin-top:4px;color:#3d4941;font-size:12px;font-weight:700}.login-panel input{width:100%;height:42px;padding:0 11px;border:1px solid #bdc8c0;border-radius:5px;outline:none}.login-panel input:focus{border-color:#34754a;box-shadow:0 0 0 3px #34754a1f}.login-panel form>button{height:42px;margin-top:9px;border:0;border-radius:5px;color:#fff;background:#27623c;cursor:pointer;font-weight:700}.login-panel form>button:hover:not(:disabled){background:#1f5031}.form-feedback{margin:2px 0 0;color:#a52c27;font-size:12px}.login-security{padding-top:16px;margin:20px 0 0;border-top:1px solid #e6ebe7;color:#77817a;font-size:11px;line-height:1.6}@media(max-width:900px){.admin-shell{grid-template-columns:1fr}.sidebar{position:static;width:100%;height:auto;padding:14px 16px 10px}.brand{padding-bottom:12px}.sidebar nav{display:flex;margin-top:10px;padding-bottom:3px;overflow-x:auto;scrollbar-width:none}.sidebar nav::-webkit-scrollbar{display:none}.sidebar nav a{min-height:36px;flex:0 0 auto;padding:8px 11px}}@media(max-width:680px){.topbar,.module-header,.resource-toolbar,.rule-notice,.pagination{align-items:flex-start}.topbar,.module-header,.resource-toolbar,.pagination{flex-direction:column}.topbar{padding:14px 16px}.account-area{width:100%;justify-content:space-between}.workspace-content{padding:16px}.module-header,.resource-tabs,.resource-intro,.resource-workbench{padding-right:16px;padding-left:16px}.module-header{min-height:auto}.resource-intro{display:grid;gap:5px}.rule-notice{display:grid;gap:4px}.resource-toolbar{width:100%}.filter-bar{width:100%;flex-wrap:wrap}.search-field,.search-field input,.select-field select{width:100%}.select-field{min-width:150px;flex:1 1 150px}.form-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}.dialog-backdrop{align-items:end;padding:10px}.dialog{max-height:calc(100vh - 20px)}}.policy-image-field{display:grid;gap:12px}.policy-image-field img{width:min(240px,100%);aspect-ratio:1;object-fit:contain;border:1px solid #d9dfdc;border-radius:6px;background:#fff}
