:root{--ink: #17211d;--muted: #6a756f;--line: #dfe7e2;--panel: #ffffff;--soft: #f4f8f5;--solar: #d8a93b;--solar-strong: #b98618;--green: #1f5f4b;--green-dark: #123d34}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:Inter,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:#eef4f0}button,input,select{font:inherit}.admin-shell{display:grid;min-height:100vh;grid-template-columns:264px minmax(0,1fr)}.sidebar{display:flex;flex-direction:column;gap:22px;padding:24px 18px;color:#f8fbf7;background:linear-gradient(180deg,#123d34,#0f2d29)}.brand{display:flex;align-items:center;gap:12px;min-height:52px}.brand-mark{display:grid;width:42px;height:42px;place-items:center;color:#1f3d35;background:#f3c766;border-radius:8px}.brand strong{display:block;font-size:16px;letter-spacing:0}.brand span{display:block;margin-top:3px;color:#bfd2ca;font-size:12px}.nav-list{display:flex;flex-direction:column;gap:6px}.nav-item,.nav-group-title{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 12px;color:#dfeae5;text-decoration:none;border-radius:8px}.nav-item.router-link-active{color:#1f302a;background:#f1c760}.nav-child{margin-left:18px;color:#cbd9d3}.nav-group-title{color:#fff;font-weight:600}.main{min-width:0;padding:26px 30px 36px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.eyebrow{margin:0 0 6px;color:var(--solar-strong);font-size:13px;font-weight:700}.muted{color:var(--muted);line-height:1.7}.topbar h1{margin:0;font-size:28px;letter-spacing:0}.user-box{display:flex;align-items:center;gap:12px}.user-meta{text-align:right}.user-meta span,.user-meta small{display:block}.user-meta small{color:var(--muted)}.icon-button,.primary-button,.ghost-button,.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:0 12px;cursor:pointer;border:1px solid transparent;border-radius:8px}.icon-button{width:38px;padding:0;color:var(--green-dark);background:var(--panel);border-color:var(--line)}.primary-button{color:#fff;background:var(--green)}.ghost-button{color:var(--green-dark);background:var(--panel);border-color:var(--line)}.danger-button{color:#8d2f2f;background:#fff4f1;border-color:#f0c7bd}.panel{padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:8px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.filters{display:flex;flex-wrap:wrap;gap:10px}.input,.select{min-height:36px;min-width:180px;padding:0 11px;color:var(--ink);background:#fbfdfb;border:1px solid var(--line);border-radius:8px}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:13px 12px;text-align:left;border-bottom:1px solid var(--line)}.data-table th{color:var(--muted);font-size:13px;font-weight:700;background:#f8faf8}.row-actions{display:flex;flex-wrap:wrap;gap:8px}.sys-table-scroll{width:100%;overflow-x:auto}.sys-table-scroll .data-table{min-width:980px}.sys-message{margin:0 0 14px;padding:10px 12px;color:#1f5f4b;background:#e5f5ee;border:1px solid #a6cfbd;border-radius:8px}.sys-message.error{color:#8d2f2f;background:#fff4f1;border-color:#f0c7bd}.sys-empty{margin:0;padding:18px;color:var(--muted);text-align:center}.sys-status{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;color:#1f5f4b;font-size:13px;font-weight:700;background:#e5f5ee;border-radius:8px}.sys-status.off{color:#8d2f2f;background:#fff4f1}.sys-pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:16px;color:var(--muted);font-size:13px}.sys-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:grid;place-items:center;padding:24px;background:#0f2d298c}.sys-modal{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(980px,100%);max-height:min(90vh,820px);overflow:hidden;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 24px 70px #0f2d2947}.sys-modal-narrow{width:min(620px,100%)}.sys-modal-head,.sys-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid var(--line)}.sys-modal-head strong{font-size:18px}.sys-modal-body{min-height:0;padding:16px 18px;overflow:auto}.sys-modal-foot{justify-content:flex-end;border-top:1px solid var(--line);border-bottom:0}.sys-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sys-form-grid.single{grid-template-columns:1fr}.sys-field{display:flex;flex-direction:column;gap:7px;min-width:0}.sys-field span,.sys-check-section>strong{color:var(--muted);font-size:13px;font-weight:700}.sys-field .input,.sys-field .select{width:100%;min-width:0}.sys-field-wide{grid-column:1 / -1}.sys-check-section{display:grid;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.sys-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.sys-check-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.sys-check-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 9px;align-items:center;min-height:54px;padding:10px 12px;cursor:pointer;background:#fbfdfb;border:1px solid var(--line);border-radius:8px}.sys-check-item input{width:17px;height:17px;accent-color:var(--green)}.sys-check-item span,.sys-check-item small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sys-check-item small{grid-column:2;color:var(--muted);font-size:12px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.metric{padding:18px;background:var(--panel);border:1px solid var(--line);border-radius:8px}.metric span{color:var(--muted);font-size:13px}.metric strong{display:block;margin-top:10px;font-size:27px}.login-page{display:grid;min-height:100vh;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);background:#eef4f0}.login-visual{position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:56px;color:#fff;background:linear-gradient(135deg,#123d34f5,#195243c7),url(https://images.unsplash.com/photo-1509391366360-2e959784a276?auto=format&fit=crop&w=1600&q=80) center/cover}.login-visual h1{max-width:620px;margin:0;font-size:48px;line-height:1.1;letter-spacing:0}.login-visual p{max-width:560px;color:#dbe9e1;line-height:1.8}.login-form-wrap{display:grid;place-items:center;padding:40px}.login-form{width:min(420px,100%);padding:30px;background:var(--panel);border:1px solid var(--line);border-radius:8px}.login-form h2{margin:0 0 8px;font-size:26px}.login-form label{display:block;margin-top:16px;color:var(--muted);font-size:13px;font-weight:700}.login-form .input{width:100%;margin-top:8px}.login-form .primary-button{width:100%;margin-top:22px}.error-text{margin:12px 0 0;color:#a33b2f}.pv-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.pv-toolbar strong{display:block;font-size:17px}.pv-toolbar-desc{margin:5px 0 0;font-size:13px}.pv-toolbar-actions,.pv-create-basic{display:flex;flex-wrap:wrap;gap:10px}.pv-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px;padding:14px;background:#f8faf8;border:1px solid var(--line);border-radius:8px}.pv-design-sheet{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px}.pv-sheet-block{padding:14px;background:#fbfdfb;border:1px solid var(--line);border-radius:8px}.pv-sheet-block h3{margin:0 0 12px;font-size:16px}.pv-sheet-block:nth-child(4),.pv-sheet-block:nth-child(5),.pv-sheet-block:nth-child(6){grid-column:1 / -1}.pv-user-grid{margin:0;padding:0;background:transparent;border:0}.pv-inline-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.pv-inline-fields label,.pv-install-grid label{display:flex;flex-direction:column;gap:7px}.pv-form-grid label{display:flex;flex-direction:column;gap:7px;min-width:0}.pv-form-grid span{color:var(--muted);font-size:13px;font-weight:700}.pv-inline-fields span,.pv-install-grid>label>span{color:var(--muted);font-size:13px;font-weight:700}.pv-form-grid .input,.pv-form-grid .select,.pv-inline-fields .input{width:100%;min-width:0}.pv-wide{grid-column:span 2}.pv-textarea{min-height:72px;padding-top:8px;resize:vertical}.pv-description{width:100%;min-height:110px}.pv-check-grid,.pv-install-grid{display:grid;gap:10px}.pv-roof-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:12px}.pv-check-section{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--line);border-radius:8px}.pv-check-row,.pv-check-row-wrap,.pv-field-line{display:flex;align-items:center;flex-wrap:wrap;gap:10px;min-height:32px}.pv-check-row{color:var(--ink)}.pv-check-row input[type=checkbox],.pv-check-row input[type=radio]{width:18px;height:18px;accent-color:#c92323}.pv-check-row-wrap>span,.pv-field-line>span{color:var(--ink);font-weight:600}.pv-mini-input{width:86px;min-width:86px}.pv-table-wrap{overflow-x:auto}.pv-table{min-width:980px}.pv-status{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;font-size:13px;font-weight:700;border-radius:8px}.pv-status-0{color:#72531a;background:#fff4cf}.pv-status-1{color:#1b5485;background:#e8f3ff}.pv-status-2{color:#3d5d87;background:#edf5ff}.pv-status-3{color:#7a4a16;background:#fff2db}.pv-status-4,.pv-status-8{color:#8d2f2f;background:#fff4f1}.pv-status-5{color:#3a4c9b;background:#edf0ff}.pv-status-6{color:#72531a;background:#fff4cf}.pv-status-7{color:#1f5f4b;background:#e5f5ee}.pv-error-cell{max-width:220px;color:#8d2f2f}.pv-task-table td{vertical-align:top}.pv-task-table td strong,.pv-task-table td small{display:block}.pv-task-table td small{max-width:260px;margin-top:5px;color:var(--muted);line-height:1.4}.pv-error-inline{color:#8d2f2f!important}.pv-row-actions{flex-wrap:wrap;min-width:390px}.pv-row-actions .ghost-button{min-width:72px}.pv-output-tags{display:flex;gap:6px}.pv-output-tags span{min-width:42px;padding:4px 7px;color:#88938d;font-size:12px;font-weight:700;text-align:center;background:#f1f4f2;border:1px solid var(--line);border-radius:8px}.pv-output-tags span.active{color:#123d34;background:#e5f5ee;border-color:#a6cfbd}.pv-empty{padding:26px;color:var(--muted);text-align:center}.pv-result{margin-top:18px;border:1px solid var(--line);border-radius:8px}.pv-result-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line)}.pv-result pre{max-height:360px;margin:0;padding:14px;overflow:auto;color:#f7fbf7;background:#17211d;border-radius:0 0 8px 8px}.pv-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:28px;background:#0f2d298c}.pv-modal{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(1180px,100%);max-height:min(92vh,980px);background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 24px 70px #0f2d2947}.pv-review-modal{width:min(1240px,100%)}.pv-review-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.pv-review-body .pv-sheet-block:nth-child(3),.pv-review-body .pv-sheet-block:nth-child(4){grid-column:1 / -1}.pv-review-body .pv-form-grid{margin:0}.pv-review-foot{flex-wrap:wrap}.pv-review-note{flex:1 1 280px}.pv-modal-head,.pv-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid var(--line)}.pv-modal-head strong{display:block;font-size:18px}.pv-modal-head .muted{margin:5px 0 0;font-size:13px}.pv-modal-body{min-height:0;padding:16px 18px;overflow:auto}.pv-modal-foot{justify-content:flex-end;border-top:1px solid var(--line);border-bottom:0}.pv-create-basic{margin-bottom:14px;padding:12px;background:#f8faf8;border:1px solid var(--line);border-radius:8px}.pv-upload-card{position:relative;display:grid;width:210px;min-height:148px;place-items:center;overflow:hidden;cursor:pointer;background:#fff;border:1px dashed #a8b8af;border-radius:8px;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.pv-upload-card:hover,.pv-upload-card-active{background:#f5fbf7;border-color:var(--green);box-shadow:0 0 0 3px #1f5f4b1a}.pv-upload-card-filled{border-style:solid}.pv-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.pv-upload-empty{display:grid;gap:10px;place-items:center;padding:18px;color:var(--green-dark);text-align:center}.pv-upload-empty span{max-width:150px;color:var(--muted);font-size:13px;line-height:1.5}.pv-upload-preview{width:100%;height:100%;object-fit:cover}.pv-upload-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:260px;color:var(--ink)}.pv-upload-meta span{max-width:280px;overflow:hidden;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.pv-upload-meta small{color:var(--muted)}@media (max-width: 900px){.admin-shell,.login-page{grid-template-columns:1fr}.sidebar{min-height:auto}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sys-form-grid,.sys-check-grid,.sys-check-grid.three{grid-template-columns:1fr}.sys-field-wide{grid-column:auto}.sys-pagination,.sys-modal-foot{align-items:stretch;flex-wrap:wrap}.pv-form-grid,.pv-design-sheet,.pv-inline-fields,.pv-review-body,.pv-roof-grid{grid-template-columns:1fr}.pv-review-body .pv-sheet-block:nth-child(3),.pv-review-body .pv-sheet-block:nth-child(4){grid-column:auto}.pv-wide{grid-column:span 1}.pv-modal-backdrop{padding:12px}.pv-modal{max-height:94vh}.pv-modal-head,.pv-modal-foot{align-items:flex-start}}.ticket-console{display:grid;grid-template-columns:minmax(250px,.85fr) minmax(280px,1fr) minmax(300px,1.05fr) minmax(260px,.9fr);gap:14px;align-items:start}.ticket-column{display:grid;gap:14px;min-width:0}.ticket-column-narrow{min-width:250px}.ticket-panel{display:grid;gap:12px}.ticket-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.ticket-panel-head strong{font-size:17px}.ticket-count{margin-left:auto;color:var(--muted);font-size:12px;font-weight:700;white-space:nowrap}.ticket-field{display:grid;gap:7px}.ticket-field span{color:var(--muted);font-size:13px;font-weight:700}.ticket-field .input,.ticket-field .select,.ticket-full-button{width:100%}.ticket-filter-line{display:flex;gap:10px}.ticket-small-input{min-width:92px;width:110px}.ticket-list{display:grid;gap:8px;max-height:520px;padding-top:2px;overflow:auto}.ticket-list.compact{max-height:220px}.ticket-row-button{display:grid;gap:5px;width:100%;min-height:58px;padding:10px 12px;color:var(--ink);line-height:1.45;text-align:left;cursor:pointer;background:#fbfdfb;border:1px solid var(--line);border-radius:8px}.ticket-row-button:hover,.ticket-row-button.active{border-color:var(--green);box-shadow:inset 3px 0 0 var(--green)}.ticket-row-button:disabled{cursor:not-allowed;opacity:.58}.ticket-row-button strong,.ticket-row-button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticket-row-button span{color:var(--muted);font-size:13px}.ticket-row-button.muted{background:#f6f7f6}.ticket-tag{display:inline-flex;align-items:center;justify-content:center;width:fit-content;min-height:22px;padding:0 8px;color:#72531a;font-size:12px;font-style:normal;font-weight:800;background:#fff4cf;border-radius:999px}.ticket-tag.warning{color:#8d2f2f;background:#fff4f1}.ticket-activity-card{grid-template-columns:58px minmax(0,1fr);align-items:center;min-height:96px}.ticket-activity-poster{width:58px;height:78px;object-fit:cover;background:#eef3ef;border:1px solid var(--line);border-radius:6px}.ticket-activity-poster.empty{display:inline-flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px;font-weight:700}.ticket-activity-body{display:grid;gap:5px;min-width:0}.ticket-activity-body strong,.ticket-activity-body span,.ticket-activity-body em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticket-activity-body em{color:#9a6418;font-size:12px;font-style:normal;font-weight:700}.ticket-event-card{min-height:92px}.ticket-event-card em{min-width:0;overflow:hidden;color:#9a6418;font-size:12px;font-style:normal;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.ticket-category-card{align-content:start;min-height:116px;padding:14px 14px 13px}.ticket-category-card strong{display:block;min-height:22px;line-height:1.45}.ticket-category-card span{line-height:1.45}.ticket-category-card em,.ticket-category-card small,.ticket-hint{min-width:0;overflow:hidden;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.ticket-category-card em{color:#9a6418;font-size:13px;font-weight:800}.ticket-category-card small,.ticket-hint{color:var(--muted);font-size:12px;font-weight:700}.ticket-empty{padding:18px;color:var(--muted);text-align:center;background:#f8faf8;border:1px dashed var(--line);border-radius:8px}.ticket-summary{display:grid;gap:8px}.ticket-summary p{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:8px 0;border-bottom:1px solid var(--line)}.ticket-summary span{color:var(--muted);font-size:13px}.ticket-summary strong{min-width:0;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.ticket-status{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;color:#72531a;font-size:13px;font-weight:700;background:#fff4cf;border-radius:8px}.ticket-status.success{color:#1f5f4b;background:#e5f5ee}.ticket-status.failed{color:#8d2f2f;background:#fff4f1}.ticket-status.waiting{color:#72531a;background:#fff4cf}.ticket-status.cancelled{color:#51605c;background:#edf2ef}.ticket-status.expired{color:#775135;background:#f6eadf}.ticket-textarea{min-height:116px;padding-top:10px;resize:vertical}.ticket-message{padding:10px 12px;color:#72531a;line-height:1.5;background:#fff9e5;border:1px solid #ead69b;border-radius:8px}.ticket-message.error{color:#8d2f2f;background:#fff4f1;border-color:#f0c7bd}@media (max-width: 1180px){.ticket-console{grid-template-columns:repeat(2,minmax(0,1fr))}.ticket-column-narrow{min-width:0}}@media (max-width: 760px){.ticket-console{grid-template-columns:1fr}.ticket-filter-line{flex-direction:column}.ticket-small-input{width:100%}}.sunroof-page{display:grid;gap:14px;min-width:0}.sunroof-suitebar{display:grid;grid-template-columns:minmax(190px,260px) minmax(0,1fr) auto;align-items:center;gap:14px;min-height:58px;padding:0 14px;color:#fff;background:#ed6b1f;border-radius:8px}.sunroof-suitebrand{display:flex;align-items:center;gap:10px;min-width:0}.sunroof-suitebrand span{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;color:#ed6b1f;font-size:13px;font-weight:800;background:#fff;border-radius:6px}.sunroof-suitebrand strong{min-width:0;overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.sunroof-suite-tabs{display:flex;align-items:center;gap:4px;min-width:0;overflow-x:auto}.sunroof-suite-tabs button{flex:0 0 auto;min-height:36px;padding:0 12px;color:#fff4ed;cursor:pointer;background:transparent;border:0;border-radius:6px}.sunroof-suite-tabs button.active{color:#25324a;background:#fff}.sunroof-suite-actions,.sunroof-toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.sunroof-blue-button,.sunroof-light-button,.sunroof-icon-button,.sunroof-create-button,.sunroof-mini-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;cursor:pointer;border:1px solid transparent;border-radius:8px}.sunroof-blue-button{min-width:96px;padding:0 14px;color:#fff;background:#126fca}.sunroof-blue-button:disabled,.sunroof-light-button:disabled,.sunroof-icon-button:disabled,.sunroof-create-button:disabled{cursor:not-allowed;opacity:.62}.sunroof-light-button,.sunroof-icon-button{width:38px;padding:0;color:#1f3a5d;background:#fff;border-color:#d9e2ec}.sunroof-icon-button.danger{color:#9a3412;background:#fff3ed;border-color:#fed7aa}.sunroof-message{padding:10px 12px;color:#0f5132;background:#e8f6ef;border:1px solid #a8d7bf;border-radius:8px}.sunroof-message.error{color:#9a3412;background:#fff3ed;border-color:#fed7aa}.sunroof-workbench{display:grid;grid-template-columns:286px minmax(520px,1fr) 338px;gap:14px;align-items:start;min-width:0}.sunroof-draft-panel,.sunroof-canvas-panel,.sunroof-inspector{min-width:0;background:#fff;border:1px solid #dce5ee;border-radius:8px}.sunroof-draft-panel,.sunroof-inspector,.sunroof-canvas-panel{display:grid;gap:12px;padding:14px}.sunroof-panel-head,.sunroof-toolbar,.sunroof-section-title.with-action{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.sunroof-panel-head p{margin:0 0 3px;color:#ed6b1f;font-size:12px;font-weight:800}.sunroof-panel-head strong{display:block;min-width:0;overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.sunroof-search-row{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:8px}.sunroof-search-row .input,.sunroof-form-grid .input,.sunroof-form-grid .select{width:100%;min-width:0}.sunroof-create-button{width:100%;color:#fff;background:#126fca}.sunroof-draft-list{display:grid;gap:8px;max-height:432px;overflow:auto}.sunroof-draft-item{display:grid;gap:5px;min-height:76px;padding:10px;color:#26364e;text-align:left;cursor:pointer;background:#f8fafc;border:1px solid #dce5ee;border-radius:8px}.sunroof-draft-item.active{background:#edf6ff;border-color:#87bff2}.sunroof-draft-item span,.sunroof-draft-item strong,.sunroof-draft-item small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sunroof-draft-item span{color:#ed6b1f;font-size:12px;font-weight:800}.sunroof-draft-item small{color:#69788e}.sunroof-mini-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.sunroof-mini-tools button,.sunroof-mini-button{min-height:32px;padding:0 8px;color:#1f3a5d;background:#f8fafc;border:1px solid #dce5ee;border-radius:6px}.sunroof-mini-button.danger{color:#9a3412;background:#fff3ed;border-color:#fed7aa}.sunroof-stage-tabs{display:flex;align-items:center;gap:6px;min-width:0;overflow-x:auto}.sunroof-stage-tabs button{flex:0 0 auto;min-height:34px;padding:0 11px;color:#465875;cursor:pointer;background:#f4f7fb;border:1px solid #dce5ee;border-radius:8px}.sunroof-stage-tabs button.active{color:#fff;background:#126fca;border-color:#126fca}.sunroof-canvas-shell{display:grid;min-height:520px;overflow:hidden;background:#eef4f8;border:1px solid #dce5ee;border-radius:8px}.sunroof-canvas{width:100%;height:min(62vh,640px);min-height:500px}.sunroof-grid-bg{fill:#f8fbfd}.sunroof-grid-line{stroke:#dce8f3;stroke-width:16}.sunroof-roof-shape{fill:#ffffffc7;stroke:#26364e;stroke-width:34}.sunroof-obstacle{cursor:pointer;fill:#ed6b1f2e;stroke:#ed6b1f;stroke-dasharray:80 56;stroke-width:30}.sunroof-obstacle.active{fill:#ed6b1f47;stroke-width:44}.sunroof-module rect{fill:#234a7c;stroke:#fff;stroke-width:22}.sunroof-module.sunroof-module-outline rect{fill:#234a7c14;stroke:#94a3b8;stroke-width:20}.sunroof-module text{fill:#fff;font-size:210px;font-weight:800;pointer-events:none}.sunroof-wire{fill:none;stroke:#16a34a;stroke-linecap:round;stroke-linejoin:round;stroke-width:38}.sunroof-axis-line{stroke:#1d4ed8;stroke-dasharray:110 70;stroke-linecap:round;stroke-width:30}.sunroof-axis-marker circle{fill:#fff;stroke:#1d4ed8;stroke-width:26}.sunroof-axis-marker text{fill:#1e3a8a;font-size:190px;font-weight:900;pointer-events:none;text-anchor:middle}.sunroof-structure-line{fill:none;stroke-linecap:round;stroke-linejoin:round}.sunroof-structure-main_beam,.sunroof-structure-ring_beam{stroke:#1d4ed8;stroke-width:44}.sunroof-structure-purlin{stroke:#64748b;stroke-width:20}.sunroof-structure-column_brace,.sunroof-structure-inclined_beam_brace,.sunroof-structure-cantilever_beam_brace,.sunroof-structure-beam_brace,.sunroof-structure-cantilever_brace_1,.sunroof-structure-cantilever_brace_2,.sunroof-structure-lower_chord_brace{stroke:#ed6b1f;stroke-width:30}.sunroof-support-point circle{fill:#fff;stroke:#111827;stroke-width:28}.sunroof-support-point-large circle{fill:#fff7ed;stroke:#ed6b1f;stroke-width:38}.sunroof-support-point text{fill:#111827;font-size:250px;font-weight:900;paint-order:stroke;pointer-events:none;stroke:#fff;stroke-width:28}.sunroof-canvas-empty-text{fill:#69788e;font-size:360px;font-weight:800;text-anchor:middle}.sunroof-stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.sunroof-support-plan-panel{display:grid;gap:10px;min-height:320px}.sunroof-support-plan-toolbar{display:grid;grid-template-columns:minmax(150px,1fr) 160px 220px;gap:10px;align-items:end;padding:10px;background:#fff;border:1px solid #dce5ee;border-radius:8px}.sunroof-support-plan-toolbar>div{display:grid;gap:4px}.sunroof-support-plan-toolbar>div span,.sunroof-support-plan-toolbar label span{color:#69788e;font-size:12px;font-weight:800}.sunroof-support-plan-toolbar>div strong{color:#26364e;font-size:16px}.sunroof-support-plan-toolbar label{display:grid;gap:5px}.sunroof-support-plan-legend{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;padding:8px 10px;background:#fff;border:1px solid #dce5ee;border-radius:8px}.sunroof-support-plan-legend span{display:inline-flex;gap:6px;align-items:center;color:#334155;font-size:12px;font-weight:800}.sunroof-support-plan-legend i{width:18px;height:8px;border-radius:1px}.sunroof-support-plan-svg{width:100%;height:clamp(340px,48vh,620px);background:#fffefe;border:1px solid #dce5ee;border-radius:8px}.sunroof-support-plan-roof{fill:#f8fbff;stroke:#94a3b8;stroke-width:32}.sunroof-support-plan-rect{stroke:#fff;stroke-width:22}.sunroof-support-plan-component{fill:#001eff;opacity:.86}.sunroof-support-plan-lower_mount_component{fill:red;opacity:.9}.sunroof-support-plan-line{fill:none;stroke-linecap:round;stroke-linejoin:round}.sunroof-support-plan-main_beam{stroke:#111;stroke-width:70}.sunroof-support-plan-secondary_beam{stroke:#00d9ff;stroke-width:36}.sunroof-support-plan-fake_beam{stroke:#ff4cc8;stroke-dasharray:160 96;stroke-width:44}.sunroof-support-plan-secondary_beam_reinforcement_rect_tube{stroke:#b000b9;stroke-width:58}.sunroof-support-plan-point{stroke:#fff;stroke-width:18}.sunroof-support-plan-sleeve{fill:#2445ff}.sunroof-support-plan-weld_point{fill:#f59e0b}.sunroof-support-drawing-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.sunroof-support-drawing-board.single{grid-template-columns:minmax(0,1fr)}.sunroof-support-drawing{display:grid;grid-template-rows:auto minmax(220px,1fr);min-height:292px;overflow:hidden;background:#fff;border:1px solid #dce5ee;border-radius:8px}.sunroof-support-drawing-head{display:grid;gap:2px;padding:9px 11px;background:#f8fafc;border-bottom:1px solid #dce5ee}.sunroof-support-drawing-head strong,.sunroof-support-drawing-head span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sunroof-support-drawing-head strong{color:#26364e;font-size:13px}.sunroof-support-drawing-head span{color:#69788e;font-size:11px;font-weight:700}.sunroof-support-drawing-svg{width:100%;height:230px;background:#fffefe}.sunroof-detail-line{fill:none;stroke-linecap:butt;stroke-linejoin:round}.sunroof-detail-component{stroke:#001eff;stroke-width:54}.sunroof-detail-lower_mount_component,.sunroof-detail-column,.sunroof-detail-column_brace,.sunroof-detail-inclined_beam_brace,.sunroof-detail-beam_node_support,.sunroof-detail-cantilever_beam_brace,.sunroof-detail-beam_brace,.sunroof-detail-cantilever_brace_1,.sunroof-detail-cantilever_brace_2,.sunroof-detail-lower_chord_brace,.sunroof-detail-web_member{stroke:red;stroke-width:54}.sunroof-detail-roof_beam{stroke:#111;stroke-width:64}.sunroof-detail-tie_beam{stroke:#00d9ff;stroke-width:62}.sunroof-detail-fake_beam{stroke:#ff4cc8;stroke-width:42}.sunroof-detail-secondary_beam_reinforcement_rect_tube{stroke:#b000b9;stroke-width:38}.sunroof-detail-weld_point{stroke:#f59e0b;stroke-width:68}.sunroof-detail-foot{stroke:#111;stroke-width:32}.sunroof-detail-rect{fill:#e2e8f06b;stroke:#c7cbd1;stroke-width:16}.sunroof-detail-rect-hatch{fill:url(#sunroof-wall-hatch);opacity:.48;pointer-events:none}.sunroof-detail-rect-label{fill:#9ca3af;font-size:210px;font-weight:700;text-anchor:middle;dominant-baseline:middle}.sunroof-detail-dimension-line{stroke:#111827;stroke-width:16;fill:none}.sunroof-detail-dimension-text{fill:#111827;font-size:230px;font-weight:800;paint-order:stroke;stroke:#fff;stroke-width:20;text-anchor:middle}.sunroof-detail-callout-line{stroke:#d65ac8;stroke-width:18;fill:none}.sunroof-detail-callout-text{fill:#d65ac8;font-size:210px;font-weight:800;paint-order:stroke;stroke:#fff;stroke-width:18}.sunroof-detail-label{fill:#111827;font-size:250px;font-weight:800;paint-order:stroke;stroke:#fff;stroke-width:22;text-anchor:middle}.sunroof-detail-note{fill:#92400e;font-size:190px;font-weight:800;paint-order:stroke;stroke:#fff;stroke-width:16}.sunroof-stat-row div{display:grid;gap:4px;min-height:66px;padding:10px;background:#f8fafc;border:1px solid #dce5ee;border-radius:8px}.sunroof-stat-row span{color:#69788e;font-size:12px;font-weight:700}.sunroof-stat-row strong{color:#26364e;font-size:22px}.sunroof-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.sunroof-form-grid.compact{gap:8px}.sunroof-form-grid label{display:grid;gap:6px;min-width:0}.sunroof-form-grid label.wide,.sunroof-form-grid .wide{grid-column:1 / -1}.sunroof-form-grid span{min-width:0;overflow:hidden;color:#69788e;font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.sunroof-section-title{margin-top:4px;padding-top:10px;color:#26364e;font-size:13px;font-weight:900;border-top:1px solid #e5edf4}.sunroof-bom-list{display:grid;gap:7px}.sunroof-bom-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-height:38px;padding:8px 10px;background:#f8fafc;border:1px solid #dce5ee;border-radius:8px}.sunroof-bom-row span,.sunroof-bom-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sunroof-bom-row span{color:#465875}.sunroof-bom-row strong{color:#126fca}.sunroof-workspace-bom{display:block;min-height:620px;padding:10px 32px;overflow:auto;scroll-behavior:smooth;background:#fff;border:1px solid #dce5ee;border-radius:8px}.sunroof-bom-roof-switch{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:42px;margin-bottom:8px}.sunroof-bom-roof-switch button{min-height:34px;padding:0 14px;color:#465875;cursor:pointer;background:#f4f7fb;border:1px solid #dce5ee;border-radius:6px}.sunroof-bom-roof-switch button.active{color:#fff;background:#126fca;border-color:#126fca}.sunroof-workspace-bom-section{min-width:0;overflow-x:auto}.WorkspaceBOMTable.sunroof-workspace-bom-table{width:100%;min-width:640px;margin:10px 0 30px;font-family:sans-serif;font-size:.9em;border-collapse:collapse}.WorkspaceBOMCaption{margin:0;padding:32px 0;color:#333;font-family:PingFang SC,Microsoft YaHei,sans-serif;font-size:18px;font-weight:500;text-align:left}.WorkspaceBOMTable.sunroof-workspace-bom-table thead tr{height:48px;color:#707070;font-family:PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;font-weight:500;text-align:left;background:#f0f0f0}.WorkspaceBOMTable.sunroof-workspace-bom-table td,.WorkspaceBOMTable.sunroof-workspace-bom-table th{height:48px;padding:6px 8px;text-align:center;word-break:break-all;border:1px solid #cccccc}.WorkspaceBOMTable.sunroof-workspace-bom-table tbody td{color:#707070;font-family:PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;font-weight:400}.WorkspaceBOMTable.sunroof-workspace-bom-table tbody tr{border-bottom:1px solid #dddddd}.sunroof-structure-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.sunroof-structure-summary div{display:grid;gap:3px;min-height:56px;padding:9px;background:#f8fafc;border:1px solid #dce5ee;border-radius:8px}.sunroof-structure-summary span{color:#69788e;font-size:12px;font-weight:700}.sunroof-structure-summary strong{color:#26364e;font-size:15px}.sunroof-rule-note{padding:10px 12px;color:#92400e;background:#fffbeb;border:1px solid #fed7aa;border-radius:8px;font-size:12px;font-weight:700;line-height:1.5}.sunroof-warning-list{display:grid;gap:8px}.sunroof-warning-list div{padding:9px 11px;color:#b42318;background:#fff1f2;border:1px solid #fecdd3;border-radius:8px;font-size:12px;font-weight:700;line-height:1.5}.sunroof-empty{padding:16px 10px;color:#69788e;text-align:center;background:#f8fafc;border:1px dashed #c9d6e4;border-radius:8px}.sunroof-empty.compact{padding:10px;font-size:13px}.sunroof-list-panel{display:grid;gap:12px;padding:14px;background:#fff;border:1px solid #dce5ee;border-radius:8px}.sunroof-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.sunroof-filter-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.sunroof-filter-grid label{display:grid;gap:5px;min-width:0}.sunroof-filter-grid span{color:#69788e;font-size:12px;font-weight:800}.sunroof-filter-actions{display:flex;align-items:end;gap:8px}.sunroof-table-wrap{overflow-x:auto;border:1px solid #dce5ee;border-radius:8px}.sunroof-draft-table{width:100%;min-width:1680px;border-collapse:collapse;background:#fff}.sunroof-draft-table th,.sunroof-draft-table td{max-width:220px;padding:9px 10px;overflow:hidden;border-bottom:1px solid #e5edf4;color:#26364e;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.sunroof-draft-table th{color:#465875;background:#f8fafc;font-weight:900;text-align:left}.sunroof-draft-table tr.active td{background:#edf6ff}.sunroof-row-actions{display:flex;gap:6px;max-width:none}.sunroof-row-actions button{min-height:28px;padding:0 8px;color:#126fca;background:#f8fafc;border:1px solid #c9d6e4;border-radius:6px}.sunroof-row-actions button:disabled{color:#94a3b8;cursor:not-allowed;background:#f1f5f9}.sunroof-bom-subtitle{color:#26364e;font-size:12px}.sunroof-inspector.readonly input,.sunroof-inspector.readonly select,.sunroof-inspector.readonly textarea{pointer-events:none;background:#f8fafc}.sunroof-viewer-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:grid;place-items:center;padding:20px;background:#0000007a}.sunroof-viewer-dialog{display:grid;grid-template-rows:58px minmax(0,1fr);width:min(1152px,calc(100vw - 48px));height:min(850px,calc(100vh - 48px));overflow:hidden;background:#fff;border-radius:3px;box-shadow:0 22px 58px #0f172a3d}.sunroof-viewer-head{display:flex;align-items:center;justify-content:space-between;padding:0 20px;color:#333;border-bottom:1px solid #edf0f5}.sunroof-viewer-head strong{font-size:18px;font-weight:500}.sunroof-viewer-close{width:32px;height:32px;color:#b7bbc4;cursor:pointer;background:transparent;border:0;font-size:24px;line-height:1}.sunroof-viewer-shell{display:grid;grid-template-rows:auto minmax(0,1fr);gap:18px;min-height:0;margin:28px 20px 20px;padding:20px 18px 0;overflow:auto;background:#fff;border:1px solid #edf0f5;border-radius:4px;box-shadow:0 2px 14px #1e3c5a14}.sunroof-viewer-stepper{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:34px;align-items:start;padding:0 62px 4px}.sunroof-viewer-stepper button{position:relative;display:grid;justify-items:center;gap:10px;min-height:78px;color:#409eff;cursor:pointer;background:transparent;border:0}.sunroof-viewer-stepper button:not(:last-child):after{position:absolute;top:17px;left:calc(50% + 56px);width:calc(100% - 22px);height:2px;content:"";background:#409eff}.sunroof-viewer-stepper span{display:grid;width:44px;height:44px;place-items:center;color:#fff;background:#409eff;border-radius:50%;font-size:18px;font-weight:700}.sunroof-viewer-stepper button.active span{background:#00549f}.sunroof-viewer-stepper em{font-size:14px;font-style:normal;font-weight:500}.sunroof-viewer-bom{min-height:560px;border:0;border-radius:0}.sunroof-viewer-stents{display:grid;grid-template-rows:auto minmax(440px,1fr) 52px;gap:8px;min-height:0}.sunroof-support-plan-legend.target{justify-content:center;padding:0;border:0}.sunroof-support-plan-legend.target i{width:22px;height:4px}.sunroof-target-stent-svg{width:100%;height:min(56vh,520px);min-height:440px;background:#fff;border-bottom:1px solid #edf0f5}.sunroof-target-stent-bottom{display:grid;grid-template-columns:74px minmax(200px,300px) minmax(230px,300px) minmax(180px,300px);align-items:center;min-height:52px}.sunroof-target-stent-bottom button,.sunroof-target-stent-bottom strong{display:grid;min-height:36px;place-items:center;font-size:14px;font-weight:600}.sunroof-target-stent-bottom button{color:#409eff;background:#fff;border:1px solid #dcdfe6;border-radius:3px 0 0 3px}.sunroof-target-stent-bottom button.active{color:#fff;background:#409eff;border-color:#409eff}.sunroof-target-stent-bottom .select{min-height:36px;border-radius:0}.sunroof-target-stent-bottom strong{color:#1f2d3d;background:#f5f7fa;border:1px solid #edf0f5}.sunroof-viewer-canvas-stage{display:grid;grid-template-rows:auto minmax(460px,1fr);gap:10px;min-height:0}.sunroof-viewer-tools{display:flex;flex-wrap:wrap;gap:8px}.sunroof-viewer-tools .sunroof-light-button{width:auto;padding:0 12px}.sunroof-viewer-canvas{width:100%;height:min(58vh,560px);min-height:460px;background:#eef4f8;border:1px solid #dce5ee;border-radius:4px}.sunroof-modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:24px;background:#0f172a73}.sunroof-modal{display:grid;gap:14px;width:min(820px,100%);max-height:min(760px,92vh);padding:16px;overflow:auto;background:#fff;border-radius:8px}.sunroof-roof-type-dialog{width:min(360px,100%);max-height:min(320px,92vh)}.sunroof-roof-type-picker,.sunroof-roof-type-select{display:grid;gap:8px}.sunroof-roof-type-picker{padding:4px 0 12px}.sunroof-roof-type-select span{color:#5c6d82;font-size:12px;font-weight:800}.sunroof-create-page-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;padding:24px;overflow:auto;background:#f3f6fa}.sunroof-create-page{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:18px;width:min(1120px,100%);min-height:calc(100vh - 48px);margin:0 auto;padding:18px;background:#fff;border:1px solid #dce5ee;border-radius:8px}.sunroof-create-page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1px solid #e4ebf2}.sunroof-create-page-head strong{color:#1f2d3d;font-size:18px}.sunroof-template-route,.sunroof-basic-form{align-content:start}.sunroof-empty-panel{padding:18px;color:#69788e;background:#f8fafc;border:1px solid #dce5ee;border-radius:6px}.sunroof-modal-head,.sunroof-modal-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.sunroof-template-picker{display:grid;gap:12px}.sunroof-template-groups,.sunroof-template-list,.sunroof-toolbar-actions{display:flex;flex-wrap:wrap;gap:8px}.sunroof-template-groups button,.sunroof-template-list button{min-height:36px;padding:0 12px;color:#26364e;background:#f8fafc;border:1px solid #dce5ee;border-radius:6px}.sunroof-template-list button{display:grid;gap:3px;min-width:180px;min-height:76px;text-align:left}.sunroof-template-groups button.active,.sunroof-template-list button.active{color:#126fca;background:#edf6ff;border-color:#87bff2}@media (max-width: 1380px){.sunroof-workbench{grid-template-columns:260px minmax(480px,1fr)}.sunroof-inspector{grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr))}.sunroof-inspector>.sunroof-panel-head,.sunroof-inspector>.sunroof-section-title,.sunroof-inspector>.sunroof-bom-list,.sunroof-inspector>.sunroof-empty{grid-column:1 / -1}}@media (max-width: 980px){.sunroof-suitebar,.sunroof-workbench{grid-template-columns:1fr}.sunroof-suite-actions,.sunroof-toolbar,.sunroof-toolbar-actions{justify-content:flex-start}.sunroof-canvas{min-height:420px}.sunroof-inspector{grid-template-columns:1fr}}@media (max-width: 640px){.sunroof-suite-tabs,.sunroof-stage-tabs{padding-bottom:4px}.sunroof-form-grid,.sunroof-form-grid.compact,.sunroof-stat-row,.sunroof-mini-tools{grid-template-columns:1fr}.sunroof-toolbar-actions{flex-wrap:wrap}.sunroof-blue-button{width:100%}}.pn-page{display:grid;gap:18px}.pn-page-head,.pn-section-head,.pn-modal-head,.pn-modal-toolbar,.pn-actions{display:flex;align-items:center;justify-content:space-between;gap:14px}.pn-page-head h2,.pn-section-head h3,.pn-modal-head h3,.pn-summary-head h3{margin:0;letter-spacing:0}.pn-page-head h2{font-size:28px}.pn-section-head h3,.pn-modal-head h3,.pn-summary-head h3{font-size:18px}.pn-eyebrow{margin:0 0 5px;color:#986a1d;font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.pn-metric-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.pn-metric-strip>div,.pn-section-band,.pn-order-summary{background:#ffffffeb;border:1px solid var(--line);border-radius:8px}.pn-metric-strip>div{display:grid;gap:6px;min-height:82px;padding:16px 18px}.pn-metric-strip span,.pn-account-meta span,.pn-account-copy span,.pn-empty-state span,.pn-empty-line,.pn-ticket-toolbar small,.pn-buyer-choice span,.pn-buyer-choice em{color:var(--muted)}.pn-metric-strip strong{font-size:22px}.pn-account-list{display:grid;gap:12px}.pn-account-card{display:grid;grid-template-columns:minmax(250px,1.2fr) minmax(210px,.9fr) auto;gap:16px;align-items:center;min-height:112px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 18px 38px #123d340f}.pn-account-main,.pn-account-meta,.pn-account-actions,.pn-ticket-title{display:flex;align-items:center;gap:12px}.pn-account-avatar{display:grid;width:48px;height:48px;place-items:center;color:#123d34;background:#f4ca67;border-radius:8px}.pn-account-copy{display:grid;gap:5px;min-width:0}.pn-account-copy strong{font-size:19px}.pn-account-copy span,.pn-account-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pn-account-meta{flex-wrap:wrap}.pn-account-meta span{display:inline-flex;align-items:center;gap:6px;width:100%;font-size:13px;font-weight:700}.pn-account-actions{justify-content:flex-end;flex-wrap:wrap}.pn-empty-state{display:grid;gap:10px;place-items:center;min-height:230px;padding:28px;color:var(--green-dark);text-align:center;background:#fff;border:1px dashed var(--line);border-radius:8px}.pn-empty-line{padding:18px;text-align:center;background:#f8faf8;border:1px dashed var(--line);border-radius:8px}.pn-message{padding:12px 14px;color:#72531a;background:#fff9e5;border:1px solid #ead69b;border-radius:8px}.pn-message.error{color:#8d2f2f;background:#fff4f1;border-color:#f0c7bd}.pn-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:24px;background:#0e1f1c6b;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.pn-modal{display:grid;gap:18px;width:min(620px,100%);max-height:min(760px,92vh);padding:22px;overflow:auto;background:#fff;border:1px solid rgba(255,255,255,.66);border-radius:8px;box-shadow:0 28px 80px #0f2d2942}.pn-modal-wide{width:min(920px,100%)}.pn-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.pn-form-grid.single{grid-template-columns:1fr}.pn-modal-actions{display:flex;justify-content:flex-end;gap:10px}.pn-buyer-table{display:grid;gap:8px}.pn-buyer-row{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(220px,1.3fr) minmax(120px,.8fr) auto;gap:12px;align-items:center;min-height:54px;padding:10px 12px;background:#fbfdfb;border:1px solid var(--line);border-radius:8px}.pn-buyer-row-head{min-height:38px;color:var(--muted);font-size:12px;font-weight:800;background:#f4f8f5}.pn-order-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}.pn-order-main{display:grid;gap:16px;min-width:0}.pn-section-band{display:grid;gap:14px;padding:18px}.pn-stepper{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.pn-step{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 12px;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:8px}.pn-step span{display:grid;width:24px;height:24px;place-items:center;color:#fff;font-size:12px;font-weight:900;background:#9aa9a2;border-radius:50%}.pn-step.active,.pn-step.done{color:var(--green-dark);border-color:#1f5f4b73}.pn-step.active span,.pn-step.done span{background:var(--green)}.pn-account-choice,.pn-filter-row,.pn-ticket-toolbar,.pn-buyer-choice-grid{display:flex;flex-wrap:wrap;gap:10px}.pn-choice-pill{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 12px;color:var(--green-dark);cursor:pointer;background:#fbfdfb;border:1px solid var(--line);border-radius:8px}.pn-choice-pill.active{color:#fff;background:var(--green);border-color:var(--green)}.pn-choice-pill em{font-size:12px;font-style:normal;opacity:.82}.pn-filter-row{align-items:center}.pn-filter-row .input{max-width:360px}.pn-filter-city{max-width:120px}.pn-activity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.pn-activity-card{display:grid;grid-template-columns:74px minmax(0,1fr);gap:12px;min-height:126px;padding:12px;color:var(--ink);text-align:left;cursor:pointer;background:#fff;border:1px solid var(--line);border-radius:8px}.pn-activity-card:hover,.pn-activity-card.active,.pn-event-row:hover,.pn-event-row.active,.pn-ticket-card:hover,.pn-ticket-card.active,.pn-buyer-choice:hover,.pn-buyer-choice.active{border-color:var(--green);box-shadow:inset 3px 0 0 var(--green),0 12px 26px #123d3414}.pn-activity-card img,.pn-poster-empty{width:74px;height:100px;object-fit:cover;background:#eef3ef;border:1px solid var(--line);border-radius:6px}.pn-poster-empty{display:grid;place-items:center;color:var(--muted);font-size:12px;font-weight:700}.pn-activity-info,.pn-event-row,.pn-ticket-card,.pn-buyer-choice{display:grid;gap:6px;min-width:0}.pn-activity-info strong,.pn-activity-info span,.pn-activity-info em,.pn-activity-info small,.pn-event-row strong,.pn-event-row span,.pn-event-row em,.pn-event-row small,.pn-ticket-card strong,.pn-ticket-card span,.pn-ticket-card small{min-width:0;overflow:hidden;text-overflow:ellipsis}.pn-activity-info span,.pn-event-row em,.pn-event-row small,.pn-ticket-card span,.pn-ticket-card small{color:var(--muted)}.pn-activity-info em,.pn-activity-info small,.pn-event-row small{color:#986a1d;font-size:12px;font-style:normal;font-weight:800}.pn-event-list,.pn-ticket-grid{display:grid;gap:10px}.pn-event-row,.pn-ticket-card,.pn-buyer-choice{width:100%;padding:13px 14px;color:var(--ink);line-height:1.45;text-align:left;cursor:pointer;background:#fff;border:1px solid var(--line);border-radius:8px}.pn-ticket-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.pn-ticket-title{justify-content:space-between}.pn-ticket-title em{padding:2px 7px;color:#8d2f2f;font-size:12px;font-style:normal;font-weight:800;background:#fff4f1;border-radius:999px}.pn-ticket-price{color:#986a1d}.ticket-field.compact{width:128px}.pn-buyer-choice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.pn-buyer-choice.disabled{cursor:not-allowed;opacity:.58}.pn-order-summary{position:sticky;top:18px;display:grid;gap:14px;padding:18px}.pn-summary-list{max-height:none}.pn-submit-button{width:100%}.pn-schedule-grid{display:grid;grid-template-columns:minmax(0,1fr) 128px;gap:10px;align-items:end}.pn-preorder-panel{display:grid;gap:12px;padding-top:4px}.pn-section-head.compact{gap:10px}.pn-section-head.compact h3{font-size:16px}.pn-preorder-list{display:grid;gap:10px}.pn-preorder-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px;background:#fbfdfb;border:1px solid var(--line);border-radius:8px}.pn-preorder-row>div:first-child{display:grid;gap:4px;min-width:0}.pn-preorder-row strong,.pn-preorder-row span,.pn-preorder-row em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pn-preorder-row span,.pn-preorder-row em{color:var(--muted);font-size:12px}.pn-preorder-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.pn-preorder-filters{grid-template-columns:minmax(180px,1fr) minmax(150px,.7fr) minmax(220px,1fr) 128px auto;align-items:end}.pn-preorder-table{display:grid;gap:8px}.pn-preorder-table-head,.pn-preorder-table-row{display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(150px,.8fr) minmax(190px,.9fr) minmax(150px,.8fr) auto;gap:12px;align-items:center}.pn-preorder-table-head{min-height:38px;padding:0 12px;color:var(--muted);font-size:12px;font-weight:800}.pn-preorder-table-row{min-height:78px;padding:12px;background:#fbfdfb;border:1px solid var(--line);border-radius:8px}.pn-preorder-order,.pn-preorder-cell,.pn-preorder-status{display:grid;gap:5px;min-width:0}.pn-preorder-order strong,.pn-preorder-order span,.pn-preorder-order em,.pn-preorder-cell strong,.pn-preorder-cell span,.pn-preorder-status em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pn-preorder-order span,.pn-preorder-order em,.pn-preorder-cell span,.pn-preorder-status em{color:var(--muted);font-size:12px}.pn-pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px}.pn-pagination span{color:var(--muted);font-weight:700}.icon-button.danger{color:#8d2f2f;background:#fff4f1;border-color:#f0c7bd}.pn-order-status{justify-content:center;width:100%}@media (max-width: 1180px){.pn-account-card,.pn-order-layout{grid-template-columns:1fr}.pn-account-actions{justify-content:flex-start}.pn-order-summary{position:static}}@media (max-width: 760px){.pn-page-head,.pn-section-head,.pn-modal-head,.pn-modal-toolbar,.pn-actions,.pn-modal-actions{align-items:stretch;flex-direction:column}.pn-metric-strip,.pn-stepper,.pn-form-grid,.pn-buyer-row,.pn-preorder-filters,.pn-preorder-table-head,.pn-preorder-table-row{grid-template-columns:1fr}.pn-modal-backdrop{padding:12px}.pn-filter-row .input,.pn-filter-city,.pn-schedule-grid,.ticket-field.compact{max-width:none;width:100%}.pn-schedule-grid,.pn-preorder-row{grid-template-columns:1fr}.pn-preorder-actions,.pn-pagination{justify-content:flex-start}}
