:root{--primary-dark: #1a2332;--secondary-dark: #2c3e50;--accent-teal: #355da8;--accent-orange: #ff9a3d;--surface-app: #f4f6f9;--surface-page: #ffffff;--surface-muted: #f6f8fb;--surface-dim: rgba(23, 45, 65, .2);--surface-subtle: rgba(23, 45, 65, .08);--surface-hover: #eef2f7;--background-light: rgba(217, 217, 217, .1);--card-bg: var(--surface-page);--text-primary: #172d41;--text-secondary: #5f7286;--text-muted: #8b99a8;--text-inverse: #ffffff;--border-color: #d9e0e7;--border-strong: #c5ced8;--border-focus: #355da8;--border-success: #10b981;--border-danger: #e03636;--border-warning: #f59e0b;--success: #10b981;--success-soft: #ecfdf5;--danger: #e03636;--danger-soft: rgba(224, 54, 54, .12);--warning: #f59e0b;--warning-soft: #fff7ed;--neutral: #6b7280;--neutral-soft: #f3f4f6;--info: #0f7cb0;--info-soft: #e0f2fe;--font-heading: "Montserrat", sans-serif;--font-body: "Poppins", sans-serif;--space-2xs: 4px;--space-xs: 8px;--space-sm: 12px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--control-height: 28px;--control-height-sm: 32px;--button-height: 35px;--icon-button-size: 34px;--table-cell-padding-y: 12px;--table-cell-padding-x: 16px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 14px rgba(23, 45, 65, .08);--shadow-lg: 0 20px 60px rgba(0, 0, 0, .15)}*{margin:0;padding:0;box-sizing:border-box}html,body{min-height:100%}body{font-family:var(--font-body);background:var(--surface-app);color:var(--text-primary);margin:0;padding:0;font-size:14px;line-height:1.6}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;color:var(--text-primary)}button,input,select,textarea{font-family:var(--font-body)}.text-montserrat{font-family:var(--font-heading)}.text-poppins{font-family:var(--font-body)}.btn{min-width:124px;min-height:var(--button-height);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:0 20px;font-size:13px;font-weight:500;border:1px solid transparent;border-radius:var(--radius-pill);cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease,opacity .2s ease,transform .2s ease;white-space:nowrap;text-decoration:none}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-full{width:100%}.btn-login{display:flex;width:386px;height:30px;padding:6px;justify-content:center;align-items:center;gap:6px;border-radius:var(--radius-sm);background:#d2e9f3}.btn-icon app-icon{font-size:.8rem}.btn-primary{background-color:var(--text-primary);border-color:var(--text-primary);color:var(--text-inverse)}.btn-primary:hover:not(:disabled){background-color:#203d59;border-color:#203d59}.btn-secondary{background-color:var(--surface-page);color:var(--text-primary);border-color:var(--border-color)}.btn-secondary:hover:not(:disabled){background-color:var(--surface-muted);border-color:var(--border-strong)}.btn-danger{background-color:var(--danger);border-color:var(--danger);color:var(--text-inverse)}.btn-danger:hover:not(:disabled){background-color:#c72d2d;border-color:#c72d2d}.btn-danger-soft{background-color:var(--danger-soft);border-color:transparent;color:var(--danger)}.btn-danger-soft:hover:not(:disabled){background-color:#e036362e}.btn-light-accent{background-color:#d6eef2;border-color:transparent;color:#0f1923}.btn-light-accent:hover:not(:disabled){background-color:#b8e2eb}.page-container{padding:var(--space-xl);max-width:1400px;height:calc(100vh - 40px);margin:20px 20px 0;background-color:var(--surface-page);border-radius:20px;box-shadow:0 32px 80px #172d4114;overflow-y:auto}.page-container-tabs{padding:0;display:flex;flex-direction:column;overflow:hidden}.page-content{padding:var(--space-xl)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-lg)}.header-left{min-width:0}.page-header h1{font-size:16px;font-weight:600;letter-spacing:.04em;color:var(--text-primary);margin:0 0 var(--space-xs) 0}.page-subtitle{max-width:560px;font-size:12px;color:var(--text-primary);font-weight:500;margin:0}.tabs-header{display:flex;gap:var(--space-2xs);padding:var(--space-md) var(--space-lg) 0;background:var(--surface-page);border-bottom:1px solid var(--border-color)}.tab-btn{display:inline-flex;align-items:center;gap:var(--space-xs);padding:12px 18px;background:transparent;border:none;border-bottom:3px solid transparent;color:var(--text-secondary);cursor:pointer;transition:color .2s ease,background-color .2s ease,border-color .2s ease;margin-bottom:-1px;font-size:13px;font-weight:500}.tab-btn:hover{color:var(--text-primary);background:#172d410a}.tab-btn.active{color:var(--accent-teal);border-bottom-color:var(--accent-teal)}.tab-btn app-icon{font-size:1rem}.tab-content{flex:1;min-height:0;overflow-y:auto;background:var(--surface-page)}.page-container-tabs .page-content{min-height:100%}.search-input{width:100%;box-sizing:border-box;outline:none;border:none;border-radius:var(--radius-pill);color:var(--text-primary);padding:10px 16px;font-size:13px}.search-bar{position:relative;display:flex;align-items:center;margin-bottom:var(--space-lg)}.search-bar-icon{position:absolute;left:8px;display:flex;align-items:center;color:var(--text-muted);pointer-events:none}.search-bar-icon app-icon{font-size:1.5rem}.search-bar input{width:100%;min-height:var(--control-height);padding:8px 16px 8px 40px;border:1px solid transparent;border-radius:var(--radius-pill);background:var(--surface-dim);font-size:12px;color:var(--text-primary);outline:none;transition:background-color .15s ease,border-color .15s ease}.search-bar input::placeholder{color:var(--text-muted)}.search-bar input:focus{border-color:var(--border-focus)}.filters-row{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-bottom:var(--space-md)}.filter-group{display:flex;flex-direction:column;gap:6px;width:min(100%,240px)}.filter-label{font-size:12px;font-weight:500;color:var(--text-primary)}.filter-select-wrapper,.select-wrapper{position:relative;display:flex;align-items:center}.filter-select,.select-wrapper select{width:100%;min-height:var(--control-height);appearance:none;-webkit-appearance:none;padding:8px 38px 8px 12px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-page);font-size:11px;color:var(--text-primary);cursor:pointer;outline:none;transition:border-color .15s ease,background-color .15s ease}.filter-select:focus,.select-wrapper select:focus{border-color:var(--border-focus)}.filter-select-icon,.select-wrapper-icon{position:absolute;right:12px;pointer-events:none;display:flex;align-items:center;color:var(--text-primary)}.filter-select-icon app-icon,.select-wrapper-icon app-icon{font-size:.8rem}.table-container{border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden;background:var(--surface-page)}.data-table{width:100%;border-collapse:collapse;font-size:11px}.data-table thead{background-color:var(--surface-dim)}.data-table th{text-align:left;padding:var(--table-cell-padding-y) var(--table-cell-padding-x);font-size:11px;font-weight:600;color:var(--text-primary);letter-spacing:.05em}.data-table th.text-right,.data-table td.text-right{text-align:right}.data-table td{background-color:#f5f5f5;padding:var(--table-cell-padding-y) var(--table-cell-padding-x);border-top:1px solid var(--border-color);color:var(--text-primary);font-size:11px;vertical-align:middle}.table-row{cursor:pointer;transition:background-color .15s ease}.table-row:hover td,.table-row.row-expanded td{background-color:#fbfcfd}.truncate-cell{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actions-cell{text-align:right;display:flex;justify-content:flex-end;align-items:center;gap:var(--space-xs);white-space:nowrap}.status-pill{width:fit-content;display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--radius-sm);font-size:10px;font-weight:600;border:1px solid transparent;white-space:nowrap}.status-pill-success{background-color:var(--success-soft);color:var(--success);border-color:var(--border-success)}.status-pill-danger{background-color:#fef2f2;color:var(--danger);border-color:var(--border-danger)}.status-pill-warning{background-color:#fffbeb;color:var(--warning);border-color:var(--border-warning)}.status-pill-neutral{background-color:var(--neutral-soft);color:var(--neutral);border-color:var(--border-color)}.status-pill-info{background-color:var(--info-soft);color:var(--info);border-color:#7dd3fc}.status-pill-apicale,.status-pill-odv{background-color:var(--success-soft);color:var(--success);border-color:var(--border-success)}.status-pill-referente{background-color:var(--warning-soft);color:var(--warning);border-color:var(--border-warning)}.status-pill-altro{background-color:var(--neutral-soft);color:var(--neutral);border-color:var(--border-color)}.badge-code{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--radius-sm);background:#172d4117;color:var(--text-primary);font-size:11px;font-weight:600}.badge-level{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background-color:var(--text-primary);color:var(--text-inverse);font-size:11px;font-weight:600}.badge-efficacy{display:inline-flex;align-items:center;justify-content:center;padding:3px 10px;border-radius:var(--radius-sm);background:var(--info-soft);color:var(--info);border:1px solid #7dd3fc;font-size:10px;font-weight:600}.flag-badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);font-size:11px;font-weight:700;color:var(--text-inverse)}.flag-r{background-color:var(--accent-teal)}.flag-s{background-color:var(--warning)}.icon-btn{width:var(--icon-button-size);height:var(--icon-button-size);padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;background:var(--surface-page);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-primary);transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;opacity:.72}.icon-btn:hover{background-color:var(--surface-hover);border-color:var(--border-color);opacity:1}.icon-btn app-icon{font-size:1rem}.icon-btn-chevron{transition:transform .2s ease}.icon-btn-chevron.rotated,.icon-btn-chevron.expanded{transform:rotate(-90deg)}.stats-row{display:grid;gap:var(--space-md);margin-bottom:var(--space-lg)}.stats-row.stats-row-4,.stats-row-4{grid-template-columns:repeat(4,minmax(0,1fr))}.stats-row.stats-row-5,.stats-row-5,.stats-row:not(.stats-row-4){grid-template-columns:repeat(5,minmax(0,1fr))}.stat-card{border-radius:12px;padding:20px 24px;text-align:center;background:var(--surface-page)}.stat-value{font-family:var(--font-heading);font-size:40px;font-weight:700;line-height:1.1}.stat-label{margin-top:4px;font-size:13px;font-weight:500}.stat-total{background:#f9fafb;border-color:#d1d5db}.stat-total .stat-value,.stat-total .stat-label{color:var(--text-primary)}.stat-da-iniziare{background:#1a1a2e;border-color:#1a1a2e}.stat-da-iniziare .stat-value{color:#9e9e9e}.stat-da-iniziare .stat-label{color:#bdbdbd}.stat-in-corso{background:#0d1b2a;border-color:#0d1b2a}.stat-in-corso .stat-value{color:#42a5f5}.stat-in-corso .stat-label{color:#90caf9}.stat-completato,.stat-basso{background:#132a1a;border-color:#132a1a}.stat-completato .stat-value,.stat-basso .stat-value{color:#22c55e}.stat-completato .stat-label,.stat-basso .stat-label{color:#86efac}.stat-ritardo,.stat-alto{background:#2c1810;border-color:#2c1810}.stat-ritardo .stat-value,.stat-alto .stat-value{color:#ef4444}.stat-ritardo .stat-label,.stat-alto .stat-label{color:#fca5a5}.stat-medio{background:#292117;border-color:#292117}.stat-medio .stat-value{color:#f59e0b}.stat-medio .stat-label{color:#fcd34d}.filter-spacer{flex:1}.filter-group-checkbox{display:flex;align-items:flex-end;min-width:150px}.filter-group-date{width:180px}.filters-section{position:relative;margin-bottom:var(--space-lg)}.date-input-wrapper{position:relative;display:flex;align-items:center;cursor:pointer}.form-date-input,.filter-date-input{width:100%;min-height:var(--control-height);padding:8px 34px 8px 12px;border:1px solid var(--border-color);border-radius:8px;background:var(--surface-page);color:var(--text-primary);font-size:11px;outline:none;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.form-date-input::placeholder,.filter-date-input::placeholder{color:#9ca3af}.form-date-input:focus,.filter-date-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #355da81f}.form-date-has-value,.filter-date-has-value{color:var(--text-primary);font-weight:500}.date-input-icon{position:absolute;right:10px;display:inline-flex;align-items:center;pointer-events:none;color:var(--text-secondary)}.date-clear-btn{position:absolute;right:8px;width:24px;height:24px;border:none;border-radius:6px;background:transparent;color:#9ca3af;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:color .15s ease,background-color .15s ease}.date-clear-btn:hover{color:var(--danger);background:#fee2e2}.center-cell{text-align:center}.expanded-active td{border-bottom:none}.detail-row td{padding:0;border-top:none}.details-panel{background-color:#f9fafb;border-top:1px solid #e5e7eb;padding:20px 24px}.detail-sections{display:flex;flex-direction:column;gap:20px}.details-label,.detail-block-title{margin:0 0 8px;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--text-primary)}.details-grid{display:flex;gap:80px}.details-grid-mt{margin-top:20px}.details-col{display:flex;flex:1;flex-direction:column}.detail-value-text,.detail-block-text,.detail-info-value{margin:0;font-size:12px;font-weight:500;color:var(--text-primary)}.detail-secondary{margin:2px 0 0;font-size:11px;color:#6b7280}.detail-top-grid,.detail-bottom-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.detail-block{display:flex;flex-direction:column;gap:6px}.detail-info-row{display:flex;gap:8px;align-items:baseline}.detail-info-label{font-size:12px;color:var(--text-secondary)}.note-section{margin-top:20px}.note-text{white-space:pre-wrap}.entity-chip,.presidio-chip,.piano-chip,.article-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:16px;border:1px solid #d1d9e6;background:#eef2f7;color:var(--text-primary);font-size:11px}.piano-chip{background:#f3f4f6;border-color:#d1d5db}.entity-chip-code,.presidio-codice,.article-ref{font-weight:600;color:var(--accent-teal)}.entity-chip-separator,.presidio-sep,.piano-sep{color:#cbd5e1;font-size:10px}.entity-chip-meta,.presidio-tipo,.presidio-eff,.piano-resp,.piano-scad{color:#6b7280}.piano-stato,.piano-desc{font-weight:600}.presidi-list,.piani-list,.articles-list{display:flex;flex-wrap:wrap;gap:8px}.risk-badge,.priority-badge,.stato-badge{display:inline-flex;align-items:center;width:fit-content;padding:3px 10px;border-radius:var(--radius-pill);border:1px solid transparent;font-size:10px;font-weight:600;white-space:nowrap}.risk-high,.priority-high{background-color:#fef2f2;color:#ef4444;border-color:#fecaca}.risk-medium,.priority-medium{background-color:#fff7ed;color:#f59e0b;border-color:#fed7aa}.risk-low,.priority-low{background-color:#ecfdf5;color:#10b981;border-color:#a7f3d0}.stato-da-iniziare{background-color:#f5f5f5;color:#616161;border-color:#e0e0e0}.stato-in-corso{background-color:#e3f2fd;color:#1565c0;border-color:#bbdefb}.stato-completato{background-color:#ecfdf5;color:#10b981;border-color:#a7f3d0}.stato-annullato{background-color:#fafafa;color:#9e9e9e;border-color:#e0e0e0}.scadenza-passata{color:#ef4444!important;font-weight:600}.risk-cards-row{display:flex;gap:12px;flex-wrap:wrap}.risk-card{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:12px;background:var(--surface-page);border:1px solid var(--border-color);min-width:180px}.risk-card-label{font-size:11px;font-weight:600;color:var(--text-secondary)}.details-actions{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb}.form-section{display:flex;flex-direction:column;gap:14px}.form-section-title{font-size:14px;font-weight:700;color:var(--text-primary)}.info-box,.risk-preview{padding:14px 16px;border-radius:12px;border:1px solid var(--border-color);background:var(--surface-muted)}.loading-sm{padding:24px}.auth-page{min-height:100vh;display:flex;background:linear-gradient(180deg,#172d41,#1a1c1e)}.auth-panel{flex:1;display:flex;align-items:center;justify-content:center;padding:48px 40px}.auth-shell{width:100%;max-width:400px}.auth-shell-centered{max-width:428px}.auth-title{margin:0 0 8px;font-size:30px;font-weight:600;line-height:normal;color:#d2e9f3}.auth-title-accent{color:#e5bb56}.auth-subtitle{margin:0 0 32px;color:#d2e9f399;font-size:20px;font-weight:400;line-height:normal}.auth-form{width:100%}.auth-form-group{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.auth-label{color:#d2e9f3;font-size:10px;font-weight:500;line-height:normal}.auth-input{width:100%;height:30px;padding:0 10px;border-radius:6px;border:.5px solid rgba(245,245,245,.5);background:transparent;color:var(--text-inverse);font-size:12px;font-weight:400}.auth-input::placeholder{color:#ffffff40}.auth-input:focus{outline:none;border-color:#64c8dc80;background:#ffffff17}.auth-input.invalid,.auth-input-error{border-color:#dc354599!important;background:#dc35450d!important}.field-error{display:block;margin-top:2px;font-size:11px;color:#ff8a8a}.auth-divider{display:flex;align-items:center;gap:12px;margin:20px 0}.auth-divider-line{flex:1;height:1px;background:#ffffff1f}.auth-divider-text{font-size:13px;color:#ffffff59}.auth-social-row{display:flex;gap:12px;margin-bottom:18px}.auth-social-btn{flex:1;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:var(--text-inverse);cursor:not-allowed}.auth-legal-row{display:flex;align-items:flex-start;gap:6px;padding:6px 0;margin-bottom:8px}.auth-checkbox{position:relative;display:flex;align-items:flex-start;gap:8px;cursor:pointer}.auth-checkbox input{position:absolute;opacity:0}.auth-checkmark{position:relative;flex-shrink:0;width:15px;height:15px;margin-top:1px;border-radius:3px;border:1px solid rgba(255,255,255,.2);background:#ffffff0f;transition:all .2s ease}.auth-checkbox:hover .auth-checkmark{background:#ffffff1a;border-color:#64c8dc80}.auth-checkbox input:checked~.auth-checkmark{background:#64c8dc;border-color:#64c8dc}.auth-checkmark:after{content:"";position:absolute;inset:0;display:none;width:4px;height:7px;margin:1px 0 0 4px;border:solid #0f1923;border-width:0 2px 2px 0;transform:rotate(45deg)}.auth-checkbox input:checked~.auth-checkmark:after{display:block}.auth-legal-text{color:#d2e9f399;font-size:8px;line-height:1.5}.auth-legal-text strong{color:#d2e9f3;font-weight:500}.auth-legal-text a{color:#d2e9f399;text-decoration:underline}.auth-alert,.auth-error-box{margin-bottom:14px;padding:10px 14px;border-radius:4px;border-left:3px solid #dc3545;background:#dc35451f;color:#ff8a8a;font-size:13px}.auth-submit{width:100%;min-height:30px;height:30px;margin-top:10px;padding:6px;border-radius:6px;border:none;background:#d2e9f3;color:#172d41;font-size:10px;font-weight:600;letter-spacing:.2px}.auth-hint-box{width:100%;margin-top:20px;display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 20px;border-radius:8px;border:.4px solid #e5bb56;background:#e6ba5233;color:#e5bb56}.auth-hint-icon{font-size:20px}.auth-hint-box span{color:#e5bb56;text-align:center;font-size:10px}.page-wrapper{display:flex}.wizard-page{display:flex;flex-direction:column;height:100vh;min-height:100vh;background:#ebebeb;overflow:hidden}.wizard-main{display:flex;flex:1;gap:32px;min-height:0;padding:40px 48px;align-items:stretch;overflow:hidden}.wizard-panel{width:340px;flex-shrink:0;min-height:0}.wizard-card,.content-card{background:var(--surface-page);border-radius:16px;box-shadow:var(--shadow-md)}.wizard-card{padding:28px 24px}.wizard-header h2{margin-bottom:8px;font-size:20px;font-weight:700;line-height:1.3;color:var(--text-primary)}.wizard-header p{margin-bottom:24px;font-size:12px;line-height:1.5;color:var(--text-secondary)}.wizard-steps{display:flex;flex-direction:column;gap:4px}.wizard-step{display:flex;align-items:center;gap:10px;padding:4px 0}.step-number{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#d1d5db;color:#6c757d;font-size:12px;font-weight:600;flex-shrink:0}.step-number.done,.substep-dot.done,.substep-dot.active{background:var(--success);border-color:var(--success);color:var(--text-inverse)}.step-number.pending{background:var(--text-primary);color:var(--text-inverse)}.step-label{font-size:13px;font-weight:600;color:#9ca3af}.step-label.active{color:var(--text-primary)}.substep-list{display:flex;flex-direction:column;gap:0;margin:4px 0;padding-left:13px}.substep{display:flex;align-items:center;gap:10px;padding:5px 0}.substep span{font-size:12px;color:#9ca3af}.substep.done span,.substep.active span{color:var(--text-primary)}.substep-dot{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:2px solid #d1d5db;background:var(--surface-page);flex-shrink:0}.substep-connector{width:2px;height:10px;margin-left:9px;background:#d1d5db}.content-panel{flex:1;min-width:0;min-height:0;display:flex;overflow-y:auto}.content-card{width:100%;padding:32px 36px}.section-title{margin-bottom:24px;font-size:22px;font-weight:700;color:var(--text-primary)}.optional{font-size:16px;font-weight:400;color:var(--text-secondary)}.wizard-bottom-bar,.bottom-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-shrink:0;padding:0 40px 20px;margin-bottom:0}.skip-link{align-self:flex-end;padding-bottom:4px;color:var(--text-secondary);font-size:12px;text-decoration:underline;cursor:pointer}.skip-link:hover{color:var(--text-primary)}.bottom-center{flex:1;display:flex;justify-content:center;padding:0 24px;position:relative}.bottom-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.next-hint{font-size:11px;color:var(--text-secondary)}.bottom-actions,.warning-actions{display:flex;justify-content:center;gap:10px}.go-back-warning{position:absolute;bottom:60px;max-width:420px;padding:16px 24px;text-align:center;border-radius:12px;border:1.5px solid #ff9a3d;background:var(--surface-page);box-shadow:0 4px 20px #0000001f}.warning-title{display:block;margin-bottom:8px;font-size:13px;font-weight:700;letter-spacing:.05em;color:#f59e0b}.btn-sm{min-width:auto;padding:7px 18px;font-size:12px}.btn-warning{background-color:#fff3e0;color:#f59e0b;border-color:#f59e0b}.btn-warning:hover:not(:disabled){background-color:#ffe0b2}.workspace-shell{display:flex;flex-direction:column;height:calc(100vh - 40px);margin:20px 20px 0;background-color:var(--surface-page);border-radius:20px;box-shadow:0 466px 187px #00000003,0 729px 204px #0000;overflow:hidden}.workspace-header{display:flex;align-items:center;gap:16px;padding:16px 32px;border-bottom:1px solid var(--border-color);flex-shrink:0}.back-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid var(--border-color);border-radius:var(--radius-pill);background:transparent;color:var(--text-primary);font-size:12px;font-weight:500;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.back-btn:hover{background:var(--surface-muted);border-color:var(--border-strong)}.back-btn app-icon{font-size:10px}.title-input{flex:1;min-width:0;padding:6px 8px;border:none;border-radius:6px;background:transparent;color:var(--text-primary);font-size:14px;font-weight:500;outline:none}.title-input:focus{background:#172d410d}.save-status{min-width:80px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;color:#9ca3af;font-size:11px}.save-status.saving{color:var(--warning)}.save-status.saved{color:var(--success)}.status-dot{width:6px;height:6px;border-radius:50%;display:inline-block}.status-dot.saving-dot{background:var(--warning);animation:pulse 1s infinite}.status-dot.saved-dot{background:var(--success)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.toolbar-bar{display:flex;align-items:center;gap:4px;padding:8px 32px;border-bottom:1px solid var(--border-color);flex-shrink:0;flex-wrap:wrap;position:sticky;top:0;z-index:15;background:var(--surface-page)}.toolbar-group{display:flex;gap:2px}.toolbar-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:6px;background:transparent;color:var(--text-primary);font-size:12px;font-weight:500;cursor:pointer;transition:background-color .15s ease,color .15s ease,opacity .15s ease}.toolbar-btn:hover{background:#f3f4f6}.toolbar-btn:disabled{opacity:.45;cursor:not-allowed}.toolbar-btn.active{background:var(--text-primary);color:var(--text-inverse)}.toolbar-divider{width:1px;height:20px;margin:0 4px;background:#e5e7eb}.workspace-content{flex:1;overflow-y:auto;padding:32px}.workspace-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 32px;border-top:1px solid var(--border-color);flex-shrink:0}.meta-inline{display:flex;align-items:center;gap:16px}.meta-inline span{color:#9ca3af;font-size:11px}.footer-actions{display:flex;align-items:center;gap:10px}.section-divider-vertical{width:1px;height:20px;margin:0 2px;background:#e5e7eb}.floating-panel{position:absolute;top:calc(100% + 6px);left:0;width:184px;padding:10px;background:var(--surface-page);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 4px 16px #0000001f;z-index:100}.floating-panel-label{margin-bottom:8px;color:#9ca3af;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.option-list{display:flex;flex-direction:column;gap:1px;max-height:200px;overflow-y:auto}.option-btn{padding:5px 8px;border:none;border-radius:4px;background:none;color:var(--text-primary);font-size:12px;text-align:left;cursor:pointer;transition:background-color .1s ease}.option-btn:hover{background:#f3f4f6}.option-btn.active{background:var(--text-primary);color:var(--text-inverse)}.swatch-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin-bottom:8px}.swatch{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .1s ease;outline:1px solid rgba(0,0,0,.1);outline-offset:-1px}.swatch:hover{transform:scale(1.2)}.swatch.active{outline:2px solid var(--text-primary);outline-offset:2px}.custom-color-row{display:flex;align-items:center;gap:6px;padding-top:8px;border-top:1px solid #f3f4f6}.custom-color-label{display:flex;align-items:center;gap:5px;flex:1;color:#6b7280;font-size:11px;cursor:pointer}.custom-color-input{width:22px;height:22px;padding:1px;border:1px solid #d1d5db;border-radius:4px;background:none;cursor:pointer}.subtle-action-btn{padding:3px 6px;border:1px solid #e5e7eb;border-radius:5px;background:none;color:#6b7280;font-size:10px;white-space:nowrap;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.subtle-action-btn:hover{background:#f3f4f6;border-color:#9ca3af}.toast-top-right{inset:auto auto 28px 50%!important;transform:translate(-50%)!important}.loading-container{display:flex;justify-content:center;padding:60px}.spinner{width:36px;height:36px;border:3px solid var(--border-color);border-top-color:var(--text-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;color:var(--text-secondary);text-align:center}.empty-state p{font-size:15px;font-weight:500;margin:0 0 var(--space-xs) 0;color:var(--text-primary)}.toast{position:fixed;left:50%;bottom:28px;width:min(calc(100vw - 32px),440px);padding:14px 18px;border-radius:14px;font-size:14px;font-weight:600;line-height:1.45;text-align:center;box-shadow:0 18px 42px #0f172a38;z-index:2000;transform:translate(-50%);animation:toastSlideIn .22s ease;background:#f3fbf6;border:1px solid #39a76d;color:#165336;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);pointer-events:none;word-break:break-word}.toast-deleted{background:#fff4f4;border-color:#d43a3a;color:#8f1f1f}@keyframes toastSlideIn{0%{opacity:0;transform:translate(-50%) translateY(16px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.modal-overlay{position:fixed;inset:0;background-color:#0c141e4d;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000}.modal{background:#f5f5f5;border-radius:var(--radius-lg);padding:var(--space-xl);width:700px;max-width:95vw;box-sizing:border-box;box-shadow:var(--shadow-lg)}.modal-lg{width:660px}.modal-title{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-lg) 0}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-lg)}.modal-form{display:flex;flex-direction:column;gap:var(--space-md);width:100%}.form-row{display:flex;gap:var(--space-sm);width:100%}.form-row .form-group{flex:1 1 0;min-width:0}.form-row .form-group.full-width{flex:1 1 100%}.form-group{display:flex;flex-direction:column;gap:4px}.form-group label{font-size:11px;font-weight:500;color:var(--text-primary);white-space:nowrap}.form-group .required{color:var(--danger)}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--border-color);border-radius:8px;padding:8px 12px;min-height:var(--control-height);font-size:11px;color:var(--text-primary);outline:none;background:var(--surface-page);width:100%}.form-group textarea{min-height:auto;resize:none}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--border-focus)}.form-group input.input-error,.form-group textarea.input-error,.form-group select.input-error{border-color:var(--danger);background-color:#fff5f5}.form-group .error-msg{color:var(--danger);font-size:11px;margin-top:2px}.hint-text{display:block;margin-top:4px;font-size:11px;color:var(--text-muted)}.checkbox-label{display:inline-flex;align-items:center;gap:var(--space-xs);cursor:pointer;font-size:13px;color:var(--text-primary)}.checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer}.confirm-dialog{background:var(--surface-page);border-radius:var(--radius-lg);padding:var(--space-xl);width:420px;max-width:95vw;box-shadow:var(--shadow-lg)}.confirm-title{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 12px}.confirm-message{font-size:13px;color:var(--text-secondary);margin:0 0 var(--space-lg) 0;line-height:1.5}.confirm-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.expanded-row td{padding:0;border-top:none}.expanded-content{font-size:11px;padding:24px 24px 20px;background:#fafbfd;border-top:1px solid var(--border-color)}.info-label{font-size:11px;font-weight:600;color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px}.info-grid{display:flex;gap:40px;margin-bottom:16px}.info-meta{display:flex;flex-direction:column;gap:6px;min-width:280px}.info-item{display:flex;gap:8px}.info-key{font-size:11px;color:var(--text-muted);min-width:80px}.info-value{font-size:11px;color:var(--text-primary)}.info-description{flex:1}.info-description .info-key{display:block;margin-bottom:6px}.description-text{color:var(--text-primary);line-height:1.6;margin:0;white-space:pre-wrap}.expanded-actions{margin-top:16px}.error-inline{padding:10px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:var(--danger);font-size:13px}.error-banner{padding:14px 16px;background:#fef2f2;border:1px solid var(--danger);border-radius:var(--radius-md);color:var(--danger);margin-top:16px;font-size:13px}@media(max-width:900px){.page-container{padding:var(--space-lg);margin:16px 16px 0}.page-content{padding:var(--space-lg)}.page-header{flex-direction:column;align-items:stretch}.tabs-header{padding:12px 16px 0;overflow-x:auto}.form-row,.info-grid{flex-direction:column;gap:var(--space-sm)}.workspace-header,.workspace-footer,.toolbar-bar{padding-left:20px;padding-right:20px}.workspace-content{padding:20px}.workspace-header,.workspace-footer{flex-wrap:wrap}.footer-actions{width:100%;flex-wrap:wrap;justify-content:flex-end}.wizard-page{height:auto;overflow:visible}.wizard-main{flex-direction:column;min-height:auto;padding:24px 24px 16px;overflow:visible}.wizard-panel{width:100%}.content-panel{display:block;overflow:visible}.bottom-bar{flex-wrap:wrap;padding:0 24px 24px}.bottom-center,.bottom-right{width:100%}.bottom-right{align-items:stretch}.bottom-actions{justify-content:flex-end;flex-wrap:wrap}.go-back-warning{position:static;max-width:none}}@media(max-width:640px){.page-container{padding:var(--space-md);margin:12px 12px 0;border-radius:16px}.page-content{padding:var(--space-md)}.btn{width:100%}.modal,.confirm-dialog{padding:var(--space-lg)}.modal-actions,.confirm-actions{flex-direction:column-reverse}.workspace-shell{height:auto;min-height:calc(100vh - 24px);margin:12px 12px 0;border-radius:16px}.workspace-header,.workspace-footer,.toolbar-bar,.workspace-content{padding:16px}.toolbar-divider{display:none}.footer-actions{flex-direction:column-reverse;align-items:stretch}}
