:root{--color-brand:#c0272d;--color-brand-hover:#a01f25;--color-brand-soft:#fdedec;--color-gold:#b8860b;--color-gold-soft:#fdf6e3;--color-success:#1d9e75;--color-warning:#c77700;--color-danger:#c0272d;--color-info:#2f6fb5;--color-ink-1:#1b1b1f;--color-ink-2:#5c6068;--color-ink-3:#9aa0a8;--color-line:#e6e8eb;--color-line-2:#f0f1f3;--color-bg:#f6f7f9;--color-panel:#fff;--color-p1:#2f6fb5;--color-p2:#c0272d;--color-p3:#c77700;--color-p4:#1d9e75;--color-p5:#b8860b;--space-4:4px;--space-8:8px;--space-12:12px;--space-16:16px;--space-20:20px;--space-24:24px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--shadow-card:0 1px 2px #1018280a, 0 1px 3px #1018280f;--shadow-pop:0 8px 24px #1018281f;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--topbar-h:56px;--sidebar-w:208px;--tabbar-h:56px}*{box-sizing:border-box}body{color:var(--color-ink-1);background:var(--color-bg);margin:0;font:14px/1.6 -apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}a{color:var(--color-brand);text-decoration:none}button,input,select,textarea{font:inherit}button,.button{border:1px solid var(--color-brand);background:var(--color-brand);color:#fff;cursor:pointer;text-align:center;border-radius:8px;justify-content:center;align-items:center;min-height:44px;padding:9px 16px;font-weight:600;line-height:1.4;display:inline-flex}button:hover,.button:hover{background:var(--color-brand-hover)}button:disabled{cursor:wait;opacity:.55}button.secondary,.button.secondary{color:var(--color-ink-1);border-color:var(--color-line);background:#fff}button.text-button,.text-button{min-height:44px;color:var(--color-brand);cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;padding:8px 10px;font-weight:500;display:inline-flex}button.text-button:hover,.text-button:hover{background:var(--color-brand-soft)}button.danger{background:#9d2026}input,select,textarea{width:100%;min-height:44px;color:var(--color-ink-1);background:#fff;border:1px solid #b6bbc2;border-radius:7px;padding:9px 11px}textarea{resize:vertical;line-height:1.5}input[type=checkbox]{width:44px;height:44px;accent-color:var(--color-brand);margin:0}label{margin-bottom:5px;font-weight:600;display:block}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #2f6fb5}h1,h2,h3,p{margin-top:0}h1{margin-bottom:12px;font-size:28px;line-height:1.3}h2{margin-bottom:8px;font-size:19px;line-height:1.4}p{color:var(--color-ink-2);margin-bottom:14px}small,.hint{color:#5c6068;font-size:12px}.sr-only{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{z-index:100;background:#fff;padding:10px 20px;position:fixed;top:-100px;left:12px}.skip-link:focus{top:8px}.app-header{border-bottom:1px solid var(--color-line);background:#fff;align-items:center;gap:20px;min-height:80px;padding:14px 28px;display:flex}.brand{color:var(--color-ink-1);white-space:nowrap;align-items:center;gap:10px;font-size:21px;font-weight:750;display:flex}.brand-mark{background:var(--color-brand);color:#fff;border-radius:12px;place-items:center;width:44px;height:44px;font-size:25px;display:grid}.brand small{letter-spacing:1px;font-size:10px;font-weight:500;display:block}.portal-badge{background:var(--color-brand-soft);color:#8b2127;white-space:nowrap;border-radius:20px;padding:4px 10px;font-size:12px}.sessionbar{align-items:center;gap:14px;margin-left:auto;display:flex}.identity small{overflow-wrap:anywhere;max-width:180px;font-size:10px;display:block}.tenant-control{margin:0;font-size:11px;font-weight:500}.tenant-control select{min-width:150px;font-size:13px}.session-notice{z-index:30;max-width:480px;box-shadow:var(--shadow-pop);background:#fff8e7;border:1px solid #b8860b;border-radius:8px;padding:14px;position:fixed;top:90px;right:18px}.shell-body{display:flex}.sidebar{border-right:1px solid var(--color-line);background:#fff;flex:0 0 214px;min-height:calc(100vh - 80px);padding:24px 12px}.sidebar a{min-height:44px;color:var(--color-ink-2);border-radius:8px;align-items:center;gap:8px;margin-bottom:6px;padding:10px 12px;font-size:13px;display:flex}.sidebar a.router-link-active{background:var(--color-brand-soft);color:var(--color-brand);font-weight:600}.nav-code{min-width:26px;font-size:10px;font-weight:700}.main-content{flex:1;width:100%;min-width:0;max-width:1440px;margin:0 auto;padding:28px}.portal-p .sidebar,.portal-c .sidebar{display:none}.portal-c .main-content{max-width:760px;padding-bottom:100px}.portal-e .app-header{border-top:4px solid var(--color-gold)}.portal-o .app-header{border-top:4px solid var(--color-brand)}.portal-b .app-header{border-top:4px solid var(--color-info)}.page-heading{justify-content:space-between;align-items:center;gap:16px;margin:24px 0 20px;display:flex}.page-heading h1,.page-heading h2{margin-bottom:8px}.page-heading p{margin-bottom:0}.eyebrow{color:var(--color-brand);letter-spacing:1.4px;margin-bottom:12px;font-size:11px;font-weight:700;display:inline-block}.panel{border:1px solid var(--color-line);box-shadow:var(--shadow-card);background:#fff;border-radius:14px;padding:22px}.panel-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.panel-heading p{max-width:680px;margin-bottom:0}.actions{flex-wrap:wrap;flex-shrink:0;gap:8px;display:flex}.hero{border-top:4px solid var(--color-brand);background:linear-gradient(110deg,#fff 58%,#fceeed);justify-content:space-between;align-items:center;gap:40px;padding:40px;display:flex}.hero h1{letter-spacing:1px;font-size:34px}.hero p{max-width:620px;font-size:15px}.hero-links{flex-wrap:wrap;gap:12px;display:flex}.hero-seal{border:2px solid var(--color-brand);width:138px;height:138px;color:var(--color-brand);text-align:center;outline-offset:6px;border-radius:50%;outline:1px solid #e6a6a8;flex:0 0 138px;place-content:center;font-size:35px;font-weight:750;line-height:1.35;display:grid}.portal-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:24px;display:grid}.portal-grid a{border:1px solid var(--color-line);color:var(--color-ink-1);background:#fff;border-radius:12px;flex-direction:column;gap:6px;min-height:128px;padding:20px;display:flex}.portal-grid a:hover{border-color:var(--color-brand)}.portal-letter{color:var(--color-brand);font-size:22px;font-weight:750}.platform-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.platform-card p{min-height:48px}.card-metrics{border-top:1px solid var(--color-line);align-items:center;gap:12px;padding-top:14px;display:flex}.card-metrics strong{color:var(--color-brand);font-variant-numeric:tabular-nums;font-size:32px}.card-metrics span{color:var(--color-ink-2);font-size:11px}.system-panel{margin-top:24px}.badge{color:#264f7b;background:#eef3f8;border-radius:20px;padding:4px 9px;font-size:11px;display:inline-block}.badge.planned{color:#705014;white-space:nowrap;background:#fff5db}.notice{border:1px solid var(--color-line);background:#f7f9fc;border-radius:10px;margin:16px 0;padding:16px 18px}.notice p{margin:6px 0 0}.notice.error,.notice.forbidden{color:#812329;background:#fff1f0;border-color:#e6a6a8}.notice.stale{background:#fff7df;border-color:#ddc082}.notice.success{background:#eef9f4;border-color:#96cdb4}.notice.empty{text-align:center;padding:32px 18px}.notice.loading{background:linear-gradient(90deg,#fafafa,#edf1f4,#fafafa)}.resource-tabs{flex-wrap:wrap;gap:7px;margin:18px 0;display:flex}.resource-tabs a{border:1px solid var(--color-line);min-height:44px;color:var(--color-ink-2);background:#fff;border-radius:8px;align-items:center;padding:8px 14px;display:flex}.resource-tabs a.selected{color:var(--color-brand);background:var(--color-brand-soft);border-color:#e6a6a8}.data-table-wrap{max-width:100%;overflow:auto}.data-table{border-collapse:collapse;table-layout:auto;width:100%;font-size:13px}.data-table th{text-align:left;color:var(--color-ink-2);white-space:nowrap;background:#f7f8fa;padding:12px 10px;font-size:12px;font-weight:600}.data-table td{border-bottom:1px solid var(--color-line);overflow-wrap:anywhere;vertical-align:top;max-width:330px;padding:12px 10px}.row-actions{flex-wrap:wrap;gap:2px;min-width:160px;display:flex}.row-actions .text-button{padding:5px 7px;font-size:12px}.status-tag{white-space:nowrap;background:#eef3f8;border-radius:5px;padding:2px 6px;font-size:12px;display:inline-block}.filter-form{background:#f8f9fb;border-radius:9px;margin-bottom:16px;padding:16px}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.field-wide{grid-column:1/-1}.field small{margin-top:5px;display:block}.required{color:var(--color-brand)}.filter-form .field-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.filter-form>button{margin-top:12px}.dialog-backdrop{z-index:50;background:#17202e66;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0;overflow:auto}.dialog{width:780px;max-width:100%;max-height:calc(100dvh - 48px);box-shadow:var(--shadow-pop);overflow:auto}.dialog .panel-heading{align-items:center}.form-actions{border-top:1px solid var(--color-line);flex-wrap:wrap;gap:8px;margin-top:22px;padding-top:18px;display:flex}.warning-line,.inline-error{color:#9d2026;margin:12px 0}.danger-text{color:#9d2026!important}.record-detail{grid-template-columns:160px minmax(0,1fr);gap:0;margin:16px 0;font-size:13px;display:grid}.record-detail dt,.record-detail dd{border-bottom:1px solid var(--color-line);overflow-wrap:anywhere;white-space:pre-wrap;margin:0;padding:10px}.record-detail dt{color:var(--color-ink-2);background:#f8f9fb}.record-detail dd{font-variant-numeric:tabular-nums}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f7f8fa;border-radius:6px;max-height:360px;padding:14px;font:12px/1.6 ui-monospace,monospace;overflow:auto}summary{cursor:pointer;min-height:44px;padding:10px 0}.login-panel{max-width:540px;margin:32px auto}.login-panel form{gap:10px;margin:24px 0;display:grid}.login-panel form label{margin:0}.login-panel form button{margin-top:10px}.public-footer{text-align:center;color:var(--color-ink-2);padding:20px;font-size:12px}.mobile-tabbar{z-index:20;border-top:1px solid var(--color-line);padding-bottom:env(safe-area-inset-bottom);background:#fff;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-tabbar a{text-align:center;min-height:64px;color:var(--color-ink-2);flex-direction:column;flex:1;justify-content:center;font-size:11px;display:flex}.mobile-tabbar a span{font-size:17px;font-weight:700}.mobile-tabbar a.router-link-active{color:var(--color-brand)}.expiry-banner{z-index:60;background:#fff1f0;border:1px solid #c0272d;border-radius:8px;max-width:90vw;padding:16px;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.expiry-banner a{margin-left:12px;text-decoration:underline}.inventory-platform{margin-top:18px}.inventory-routes,.inventory-live{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.inventory-routes a,.inventory-live a{border:1px solid var(--color-line);overflow-wrap:anywhere;border-radius:8px;flex-wrap:wrap;gap:6px;min-height:70px;padding:12px;font-size:12px;display:flex}.inventory-routes small,.inventory-live span{width:100%;display:block}.planned-page{max-width:920px;margin:24px auto}@media (width<=1100px){.app-header{gap:12px;padding:12px 18px}.brand{font-size:18px}.sidebar{flex-basis:180px}.main-content{padding:20px}.portal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.platform-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.identity small{max-width:100px}.panel-heading{flex-wrap:wrap}.inventory-routes,.inventory-live{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=767px){body{font-size:14px}.app-header{flex-wrap:wrap;gap:10px;padding:12px 16px}.brand{font-size:18px}.brand-mark{width:40px;height:40px}.portal-badge{margin-left:auto}.sessionbar{justify-content:space-between;gap:6px;width:100%;margin:0}.tenant-control select{min-width:0;max-width:170px}.identity{max-width:110px;font-size:12px}.identity small{font-size:9px}.shell-body{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--color-line);gap:5px;max-width:100%;min-height:0;padding:8px;display:flex;overflow:auto}.sidebar a{flex-shrink:0;max-width:180px;min-height:44px;margin:0;padding:8px;font-size:11px}.sidebar .nav-code{display:none}.main-content{padding:16px}.hero{gap:14px;padding:22px}.hero h1{font-size:25px}.hero-seal{display:none}.hero p{font-size:14px}.hero-links .button{width:100%}.page-heading{align-items:flex-start;margin:20px 0 16px}.page-heading h1{font-size:23px}.page-heading h2{font-size:18px}.page-heading>.text-button{max-width:86px;padding:4px;font-size:11px}.portal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.portal-grid a{min-height:116px;padding:14px}.portal-grid a:last-child{grid-column:1/-1}.portal-grid strong{font-size:13px}.platform-grid{grid-template-columns:1fr}.panel{border-radius:12px;padding:17px}.resource-tabs{flex-wrap:nowrap;gap:7px;max-width:100%;padding-bottom:5px;overflow:auto}.resource-tabs a{flex-shrink:0;padding:8px 10px;font-size:12px}.actions{justify-content:flex-start;width:100%}.data-table thead{display:none}.data-table tbody,.data-table tr,.data-table td{width:100%;max-width:none;display:block}.data-table tr{border:1px solid var(--color-line);border-radius:9px;margin:10px 0;padding:8px}.data-table td{border:0;grid-template-columns:100px minmax(0,1fr);gap:6px;padding:7px 5px;font-size:12px;display:grid}.data-table td:before{content:attr(data-label);color:var(--color-ink-2);font-weight:500}.data-table td[data-label=操作]{display:block}.data-table td[data-label=操作]:before{display:none}.row-actions{border-top:1px solid var(--color-line);min-width:0;padding-top:6px}.row-actions .text-button{min-height:44px;font-size:12px}.field-grid,.filter-form .field-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}.dialog-backdrop{align-items:center;padding:8px}.dialog{max-height:calc(100dvh - 16px);padding:16px}.form-actions{flex-direction:column}.form-actions>*{width:100%}.record-detail{grid-template-columns:104px minmax(0,1fr);font-size:12px}.record-detail dt,.record-detail dd{padding:8px}.inventory-routes,.inventory-live{grid-template-columns:1fr}.notice{padding:13px}.login-panel{margin:16px auto}.session-notice{max-width:none;top:145px;left:10px;right:10px}.expiry-banner{width:90vw;font-size:12px;bottom:75px}.public-footer{padding:14px;font-size:11px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.step-up-panel{z-index:40;width:calc(100vw - 40px);max-width:420px;box-shadow:var(--shadow-pop);position:fixed;top:94px;right:20px}.structured-item{border:1px solid var(--color-line);background:#fafbfc;border-radius:10px;margin-bottom:12px;padding:14px}.item-heading{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.choice-list{flex-wrap:wrap;gap:7px;max-height:300px;display:flex;overflow:auto}.choice{border:1px solid var(--color-line);background:#fff;border-radius:7px;align-items:center;gap:4px;min-height:44px;margin:0;padding:0 10px 0 0;font-size:12px;font-weight:500;display:flex}.choice input{flex:0 0 44px}.list-item{align-items:center;gap:8px;margin-bottom:8px;display:flex}.list-item input{flex:1;min-width:0}.record-array-item{border:1px solid var(--color-line);border-radius:8px;margin:8px 0;padding:10px}.record-detail .record-detail{grid-template-columns:105px minmax(0,1fr);margin:0}.record-detail .record-array-item{margin:0 0 6px;padding:8px}.course-text{white-space:pre-wrap;border:1px solid var(--color-line);border-radius:10px;max-height:45vh;margin:18px 0;padding:20px;line-height:1.9;overflow:auto}.learning-progress{flex-direction:column;gap:4px;margin:18px 0;display:flex}.learning-progress strong{color:var(--color-brand);font-size:25px}.learning-progress span{color:var(--color-ink-2);font-size:12px}.exam-question{border:1px solid var(--color-line);border-radius:10px;margin:18px 0;padding:16px}.exam-question legend{padding:0 6px;font-weight:600}.exam-question .choice{max-width:100%;margin:8px 0;display:flex}.workflow-steps{border:1px solid var(--color-line);background:#fff;border-radius:12px;gap:12px;margin:16px 0;padding:16px;list-style:none;display:flex;overflow:auto}.workflow-steps li{flex:1;align-items:flex-start;gap:8px;min-width:155px;font-size:12px;display:flex}.step-number{background:var(--color-brand-soft);width:26px;height:26px;color:var(--color-brand);border-radius:50%;flex:0 0 26px;place-content:center;font-weight:700;display:grid}.workflow-steps small{font-size:10px;display:block}.data-table .record-detail{grid-template-columns:80px minmax(0,1fr);margin:0;font-size:11px}.data-table .record-detail dt,.data-table .record-detail dd{padding:5px}.account-panel{max-width:760px;margin:20px auto}.account-section{border-top:1px solid var(--color-line);margin:24px 0;padding-top:20px}.account-section form{gap:10px;max-width:480px;display:grid}.account-section form label{margin:0}.account-section form button{margin-top:12px}.claim-steps{gap:10px;margin:20px 0;padding:0;list-style:none;display:flex}.claim-steps li{color:var(--color-ink-2);background:#f5f6f8;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:6px;padding:9px;font-size:12px;display:flex}.claim-steps li.current{background:var(--color-brand-soft);color:var(--color-brand);font-weight:700}.claim-steps li.done{color:var(--color-success)}.product-choice{border:1px solid var(--color-line);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;margin:12px 0;padding:16px;font-weight:400;display:flex}.product-choice.selected{border-color:var(--color-brand);background:var(--color-brand-soft)}.product-choice input{width:44px;height:44px;accent-color:var(--color-brand);flex:0 0 44px}.product-choice strong{font-size:16px}.product-choice p{margin:6px 0;font-size:13px}.product-choice span{color:var(--color-brand);font-size:13px}.product-choice small{display:block}.delivery-options{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.benefit-dialog h3{margin-top:22px}.benefit-dialog label>select,.benefit-dialog label>textarea{margin:7px 0 15px}.benefit-dialog .form-actions{background:#fff;padding:16px 0 5px;position:sticky;bottom:-17px}.session-actions{align-items:center;gap:4px;display:flex}@media (width<=767px){.sessionbar{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:8px;display:grid}.identity{max-width:none}.tenant-control select{width:100%;max-width:none}.session-actions{grid-column:1/-1;justify-content:space-between}.session-actions .text-button{font-size:12px}.claim-steps{gap:5px}.claim-steps li{padding:9px 5px;font-size:11px}.product-choice{padding:12px}}
