:root{color:#1f2937;background:#f6f8fa;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{touch-action:manipulation}.landing-shell,.portal-shell{min-height:100vh}.landing-shell{display:flex;align-items:center;justify-content:center;padding:24px 16px}.landing-band{width:min(920px,100%);padding:28px 0}.landing-band h1,.page-heading h1,.portal-header h1{margin:0;color:#172033;letter-spacing:0}.landing-band h1{font-size:34px;line-height:1.18}.landing-band p,.page-heading p,.panel p,.state-box p,.safety-notice li,.muted{color:#526071;line-height:1.7}.landing-actions{display:flex;flex-direction:column;gap:12px;margin:24px 0}.legal-section-list{display:grid;gap:14px;margin:24px 0}.legal-section-list .panel{padding:18px}.legal-section-list h2{margin:0 0 10px;color:#172033;font-size:18px;line-height:1.35}.legal-list{display:grid;gap:8px;margin:0;padding-left:20px;color:#526071;line-height:1.7}.portal-shell{width:min(980px,100%);margin:0 auto;padding:18px 14px 40px}.backoffice-shell{display:grid;min-height:100vh;background:#f6f8fa}.backoffice-sidebar{display:grid;gap:18px;align-content:start;border-bottom:1px solid #d9e2ef;background:#fff;padding:18px}.backoffice-sidebar h1,.backoffice-topbar h1{margin:0;color:#172033;letter-spacing:0}.backoffice-sidebar h1{font-size:22px}.backoffice-sidebar nav{display:flex;gap:8px;overflow-x:auto}.backoffice-sidebar a{flex:0 0 auto;border:1px solid #d9e2ef;border-radius:8px;padding:10px 12px;color:#526071;font-weight:800}.backoffice-sidebar a.active{border-color:#1f4e79;background:#eaf3fb;color:#1f4e79}.backoffice-main{display:grid;gap:16px;align-content:start;padding:18px 14px 40px}.backoffice-topbar{display:grid;gap:12px}.backoffice-topbar h1{font-size:24px}.portal-header{display:flex;flex-direction:column;gap:14px;padding:10px 0 18px}.portal-header h1{font-size:22px;line-height:1.3}.eyebrow{margin:0 0 8px;color:#1f4e79;font-size:13px;font-weight:700}.student-chip{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #d9e2ef;border-radius:8px;background:#fff;padding:10px 12px;color:#526071;font-size:14px}.student-chip strong{color:#2e7d61}.step-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(82px,1fr));gap:6px;margin-bottom:18px}.step-nav a{display:flex;min-height:38px;align-items:center;justify-content:center;border:1px solid #d9e2ef;border-radius:8px;background:#fff;color:#526071;font-size:13px;font-weight:700}.step-nav a.active{border-color:#1f4e79;background:#eaf3fb;color:#1f4e79}.portal-content{display:grid;gap:16px}.page-heading{display:grid;gap:8px}.page-heading h1{font-size:26px;line-height:1.25}.page-heading p{margin:0}.panel,.report-card,.state-box,.safety-notice,.success-box{border:1px solid #d9e2ef;border-radius:8px;background:#fff}.panel{display:grid;gap:16px;padding:18px}.dashboard-grid,.metric-grid,.quick-link-grid{display:grid;gap:12px}.metric-card,.dashboard-item{display:grid;gap:6px;border:1px solid #d9e2ef;border-radius:8px;background:#fff;padding:14px}.metric-card strong{color:#172033;font-size:28px;line-height:1}.metric-card span,.dashboard-item span{color:#526071;font-size:13px;font-weight:800}.dashboard-item p{margin:0}.selector-field{display:grid;gap:10px;min-width:min(100%,260px)}.selector-menu{display:grid;max-height:260px;overflow:auto;gap:8px;border:1px solid #d9e2ef;border-radius:8px;background:#fbfdff;padding:8px}.selector-option{display:grid;gap:4px;width:100%;border:1px solid #d9e2ef;border-radius:8px;background:#fff;padding:10px;color:#172033;text-align:left}.selector-option:hover:not(:disabled),.selector-option.selected{border-color:#1f4e79;background:#eaf3fb}.selector-option:disabled{cursor:not-allowed;opacity:.58}.selector-meta,.selected-list{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.selector-meta em,.selected-pill{border:1px solid #d9e2ef;border-radius:999px;background:#f8fafc;padding:5px 8px;color:#344054;font-size:12px;font-style:normal;font-weight:800}.selector-meta small{color:#526071}.selected-pill{display:inline-flex;gap:8px;align-items:center}.button.text{min-height:auto;border:0;background:transparent;padding:0;color:#1f4e79}.safety-notice{border-color:#b8d6ee;background:#eaf3fb;padding:14px 16px}.safety-notice strong{color:#1f4e79}.safety-notice ul{display:grid;gap:6px;margin:8px 0 0;padding-left:18px}.state-box{display:grid;gap:8px;padding:18px}.state-box.error{border-color:#f3b9b9;background:#fff7f7}.state-box.api-not-connected{border-color:#bfdbfe;background:#eff6ff}.state-box.api-not-connected strong{color:#1e3a5f}.state-box.api-not-connected .button{justify-self:start;margin-top:4px}.state-box strong{color:#172033}.state-box p{margin:0}.success-box{border-color:#abd6c0;background:#f0faf5;color:#1f6b4c;padding:14px 16px;font-weight:700}.spinner{width:24px;height:24px;border:3px solid #d9e2ef;border-top-color:#1f4e79;border-radius:999px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;border:1px solid transparent;border-radius:8px;padding:0 16px;cursor:pointer;font-weight:800;transition:transform .12s ease,opacity .12s ease,background .12s ease}.button:active{transform:translateY(1px)}.button:disabled{cursor:not-allowed;opacity:.58}.button.primary{background:#2563eb;color:#fff}.button.secondary{border-color:#c8d3e1;background:#fff;color:#1f4e79}.button.warning{border-color:#d97706;background:#fff7ed;color:#9a4b00}.button.danger{border-color:#dc2626;background:#dc2626;color:#fff}.button.full{width:100%}.button.tiny{min-height:32px;border-radius:6px;padding:0 10px;font-size:12px}.upload-zone{display:grid;gap:8px;border:1px dashed #9db7d2;border-radius:8px;background:#fbfdff;padding:18px;cursor:pointer}.upload-zone span{color:#172033;font-weight:800}.upload-zone small{color:#526071;line-height:1.5}.upload-zone input{margin-top:6px}.file-preview,.file-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #e5e7eb;border-radius:8px;padding:12px}.file-preview span,.file-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-preview strong,.file-row small{flex:0 0 auto;color:#526071}.file-list{display:grid;gap:10px}.file-list h2,.panel h2,.report-card h2,.dialog-panel h2{margin:0;color:#172033;font-size:18px;line-height:1.35}.check-list{display:grid;gap:10px}.check-row{display:grid;grid-template-columns:24px 1fr;gap:10px;align-items:start}.check-row span{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;border-radius:999px;background:#eaf3fb;color:#1f4e79;font-weight:900}.check-row p,.consent-check span{margin:0;color:#344054;line-height:1.6}.consent-check{display:flex;gap:10px;align-items:center;border-top:1px solid #e5e7eb;padding-top:14px}.form-panel label{color:#172033;font-weight:800}textarea{width:100%;min-height:132px;resize:vertical;border:1px solid #c8d3e1;border-radius:8px;padding:12px;color:#172033;background:#fff;line-height:1.6}input,select{width:100%;min-height:44px;border:1px solid #c8d3e1;border-radius:8px;background:#fff;color:#172033;padding:0 12px}textarea:focus,input:focus,select:focus{outline:3px solid #cfe4ff;border-color:#2563eb}.form-meta,.report-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#526071;font-size:13px}.report-list,.portal-list,.pricing-grid{display:grid;gap:14px}.pricing-card{display:grid;gap:14px;border:1px solid #d9e2ef;border-radius:8px;background:#fff;padding:18px}.pricing-card.recommended{border-color:#1f4e79;box-shadow:0 10px 28px #1f4e7914}.pricing-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.pricing-card h2,.order-card h2{margin:0;color:#172033;font-size:19px}.price{color:#172033;font-size:30px;line-height:1}.feature-list{display:grid;gap:7px;margin:0;padding-left:18px;color:#344054;line-height:1.5}.not-included{display:grid;gap:4px;border-top:1px solid #e5e7eb;padding-top:12px;color:#526071;font-size:13px;line-height:1.6}.usage-item{display:grid;gap:8px}.usage-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#344054;font-size:14px}.usage-bar{height:10px;overflow:hidden;border-radius:999px;background:#e5e7eb}.usage-bar span{display:block;height:100%;border-radius:inherit;background:#2563eb}.report-card{display:grid;gap:16px;padding:18px}.report-card p{margin:8px 0 0;color:#526071;line-height:1.7}.report-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0}.report-stats div{border:1px solid #e5e7eb;border-radius:8px;padding:12px}.report-stats dt{color:#526071;font-size:13px}.report-stats dd{margin:6px 0 0;color:#172033;font-size:22px;font-weight:900}.settings-grid{display:grid;gap:16px}.action-panel p{margin:0}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;background:#11182775;padding:16px}.dialog-panel{width:min(480px,100%);border-radius:8px;background:#fff;padding:18px}.dialog-panel p{color:#526071;line-height:1.7}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.inline-form,.filter-panel{grid-template-columns:1fr}.inline-form h2,.filter-panel h2{grid-column:1 / -1}.table-wrap{width:100%;overflow-x:auto;border:1px solid #d9e2ef;border-radius:8px;background:#fff}.data-table{width:100%;min-width:1120px;border-collapse:collapse;font-size:13px}.data-table.compact{min-width:520px}.data-table th,.data-table td{border-bottom:1px solid #e5e7eb;padding:12px;text-align:left;vertical-align:middle}.data-table th{background:#f8fafc;color:#344054;font-weight:900;white-space:nowrap}.data-table td{color:#344054}.row-actions{display:flex;flex-wrap:wrap;gap:8px}.toolbar-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.filter-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.filter-grid label{display:grid;gap:6px;color:#344054;font-weight:800}.tag{display:inline-flex;min-height:26px;align-items:center;justify-content:center;border:1px solid #d9e2ef;border-radius:999px;padding:0 9px;background:#fff;color:#344054;font-size:12px;font-weight:900;white-space:nowrap}.tag.success{border-color:#b7dfca;background:#edf8f1;color:#226344}.tag.danger{border-color:#f3c6c3;background:#fff1f0;color:#9f2f2f}.tag.neutral,.tag.status-pending,.tag.status-classified,.tag.status-waiting_review{background:#f8fafc;color:#344054}.tag.automation-a,.tag.quality-a,.tag.risk-low{border-color:#abd6c0;background:#f0faf5;color:#1f6b4c}.tag.automation-b,.tag.quality-b,.tag.risk-medium,.tag.status-approved,.tag.status-queued,.tag.status-paid,.tag.status-active,.tag.status-succeeded,.tag.status-processing{border-color:#b8d6ee;background:#eaf3fb;color:#1f4e79}.tag.automation-c,.tag.quality-c,.tag.risk-high,.tag.status-pending_review,.tag.status-refunding,.tag.status-manual_required,.tag.status-failed{border-color:#f2c07a;background:#fff7ed;color:#9a4b00}.tag.automation-d,.tag.quality-d,.tag.risk-blocked,.tag.status-skipped,.tag.status-blocked,.tag.status-cancelled,.tag.status-refunded,.tag.status-expired,.tag.status-rejected,.tag.status-completed{border-color:#f3b9b9;background:#fff7f7;color:#b42318}.warning-box{display:grid;gap:8px;border:1px solid #f2c07a;border-radius:8px;background:#fff7ed;padding:12px}.warning-box p{margin:0;color:#9a4b00;line-height:1.6}.detail-grid{display:grid;gap:16px}.detail-list{display:grid;gap:12px;margin:0}.detail-list div{display:grid;gap:4px}.detail-list dt{color:#526071;font-size:13px;font-weight:800}.detail-list dd{margin:0;color:#172033;line-height:1.6;overflow-wrap:anywhere}.action-chip-list{display:flex;flex-wrap:wrap;gap:8px}.action-chip-list span{border:1px solid #d9e2ef;border-radius:999px;background:#f8fafc;padding:7px 10px;color:#344054;font-size:12px;font-weight:800}.action-chip-list.blocked span{border-color:#f3b9b9;background:#fff7f7;color:#b42318}.action-bar-panel .row-actions{align-items:center}.timeline{display:grid;gap:10px}.timeline-item{display:grid;gap:4px;border-left:3px solid #b8d6ee;padding:4px 0 4px 12px}.timeline-item strong{color:#172033}.timeline-item span{color:#526071;font-size:13px}.timeline-item p{margin:0}.security-summary-grid,.security-rule-grid,.security-setting-list{display:grid;gap:12px}.security-setting-card,.security-rule-card{display:grid;gap:12px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;padding:14px}.security-setting-card.locked,.security-rule-card{background:#fbfdff}.security-setting-card h3,.security-rule-card strong{margin:0;color:#172033;font-size:15px}.security-setting-card p,.security-rule-card p{margin:6px 0 0;color:#526071;line-height:1.6}.setting-control{display:flex;align-items:center;justify-content:space-between;gap:10px}.setting-control input{width:116px}.metadata-preview{max-width:360px;max-height:160px;overflow:auto;margin:0;border:1px solid #e5e7eb;border-radius:6px;background:#f8fafc;padding:8px;color:#344054;font-size:12px;line-height:1.45;white-space:pre-wrap;word-break:break-word}@media (min-width: 720px){.landing-actions{flex-direction:row}.portal-shell{padding:28px 24px 56px}.portal-header{flex-direction:row;align-items:center;justify-content:space-between}.student-chip{min-width:240px}.page-heading h1{font-size:32px}.settings-grid{grid-template-columns:1fr 1fr}.pricing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.security-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-grid{grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr)}.quick-link-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.security-rule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dialog-backdrop{align-items:center}.inline-form{grid-template-columns:repeat(4,minmax(0,1fr)) auto;align-items:end}.filter-panel{grid-template-columns:repeat(6,minmax(0,1fr)) auto;align-items:end}}@media (min-width: 1024px){.backoffice-shell{grid-template-columns:248px 1fr}.backoffice-sidebar{position:sticky;top:0;height:100vh;border-right:1px solid #d9e2ef;border-bottom:0}.backoffice-sidebar nav{display:grid;overflow:visible}.backoffice-main{padding:28px 24px 56px}.backoffice-topbar{grid-template-columns:minmax(0,1fr) 260px;align-items:center}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pricing-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
