:root{--ink-900: #14202b;--ink-700: #425466;--ink-500: #677788;--paper: #eef1f4;--panel: #ffffff;--panel-soft: #f6f8fa;--line: #cfd6dd;--line-strong: #98a6b3;--brand-900: #15325b;--brand-700: #214a80;--brand-100: #dfe6ee;--accent: #d9a300;--success: #2d6b3f;--danger: #8c2f2f;--shadow: 0 4px 12px rgba(20, 32, 43, .06)}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:var(--paper);color:var(--ink-900);line-height:1.45}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}input:focus,select:focus,textarea:focus,button:focus{outline:2px solid rgba(33,74,128,.24);outline-offset:1px}input,select,textarea,button,.auth-card,.hero-card,.stat-card,.content-card,.form-preview,.sidebar-card,.nav-link,.user-pill,.table-link,.feedback-error,.feedback-success,.detail-card,.timeline-item{border-radius:0}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(920px,100%);display:grid;grid-template-columns:1fr 1fr;background:var(--panel);border:1px solid var(--line-strong);box-shadow:var(--shadow);min-height:620px}.auth-brand{padding:40px;background:#dfe7f0;border-right:1px solid var(--line-strong);color:var(--brand-900);display:grid;align-content:start;gap:22px}.auth-brand h1,.main-header h2,.hero-card h3,.content-card h3,.detail-card h3{margin:0 0 12px}.auth-form{padding:32px;display:grid;gap:18px;align-content:center}.auth-form label,.form-field{display:grid;gap:8px}.auth-form input,.auth-form select,.form-field input,.form-field textarea,.form-field select{width:100%;border:1px solid var(--line-strong);padding:12px 14px;background:#fff;color:var(--ink-900)}textarea{resize:vertical}.primary-button,.ghost-button,.danger-button{padding:12px 18px;border:1px solid var(--line-strong);cursor:pointer;transition:background .18s ease,color .18s ease}.primary-button{background:var(--brand-900);color:#fff;border-color:var(--brand-900)}.ghost-button{background:#f7f8fa;color:var(--brand-900)}.danger-button{background:#f5e7e7;color:var(--danger);border-color:#d4a7a7}.primary-button:hover{background:#0f2748}.ghost-button:hover{background:#e7ebef}.danger-button:hover{background:#efd9d9}.primary-button:disabled,.ghost-button:disabled,.danger-button:disabled{opacity:.7;cursor:not-allowed}.eyebrow,.sidebar-kicker,.sidebar-card-label{margin:0 0 8px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--ink-500)}.app-shell{min-height:100vh;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;transition:grid-template-columns .22s ease}.app-shell-sidebar-open{grid-template-columns:320px minmax(0,1fr)}.app-shell-sidebar-closed{grid-template-columns:0 minmax(0,1fr)}.sidebar{padding:28px 20px;background:var(--brand-900);color:#fff;display:flex;flex-direction:column;justify-content:flex-start;gap:28px;border-right:1px solid #0d1f39;width:320px;height:100vh;position:sticky;top:0;align-self:start;overflow-y:auto;overflow-x:hidden;transition:width .22s ease,padding .22s ease,opacity .18s ease,border-color .22s ease}.app-shell-sidebar-closed .sidebar{width:0;padding-left:0;padding-right:0;border-right-color:transparent;opacity:0;pointer-events:none}.sidebar-top{display:grid;gap:18px}.sidebar-title{margin:0;font-size:30px;line-height:1.1}.sidebar-copy,.sidebar-card p{color:#fffc}.nav-list{display:grid;gap:8px}.nav-link{padding:12px 14px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12)}.nav-link:hover{background:#ffffff1f}.nav-link.router-link-active{background:#ffffff29}.sidebar-card{padding:16px;background:#ffffff14;border:1px solid rgba(255,255,255,.14);margin-top:auto}.main-panel{padding:24px;width:100%;min-width:0}.main-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:24px}.main-header-left,.page-title-block{display:grid;gap:8px}.page-title-block h2{margin:0}.header-actions{display:flex;align-items:center;gap:12px}.menu-toggle{padding:10px 12px;border:1px solid var(--brand-900);background:var(--brand-900);color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.menu-toggle-icon{width:52px;height:48px;gap:5px;flex-direction:column}.menu-toggle-icon span{display:block;width:22px;height:2px;background:#fff}.menu-toggle:hover{background:#0f2748}.user-pill{padding:10px 14px;background:var(--panel);border:1px solid var(--line-strong);display:flex;flex-direction:column;min-width:180px}.user-pill small{color:var(--ink-500)}.page-section,.page-stack{display:grid;gap:18px}.section-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.section-header h4,.section-header h3,.section-header p{margin-top:0}.section-header-compact{margin-bottom:12px}.section-copy{color:var(--ink-500)}.form-section{display:grid;gap:12px}.hero-grid,.stats-grid,.detail-grid,.dashboard-grid,.quick-actions-grid{display:grid;gap:18px}.hero-grid{grid-template-columns:1.25fr 1fr}.stats-grid,.stats-grid-compact{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1.1fr 1fr}.quick-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-card,.stat-card,.content-card,.form-preview,.detail-card{background:var(--panel);padding:20px;border:1px solid var(--line-strong);box-shadow:var(--shadow);border-top:4px solid var(--brand-700)}.hero-card-primary{background:#e3e9f0;color:var(--ink-900);border-top-color:var(--accent)}.stat-value{display:inline-block;margin-bottom:12px;font-size:30px;font-weight:800;color:var(--brand-900)}.table-skeleton{width:100%;border-collapse:collapse}.table-skeleton th,.table-skeleton td{padding:12px 10px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}.table-skeleton th{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-500);background:#f2f4f7}.table-link{display:inline-block;padding:8px 10px;border:1px solid var(--line-strong);background:#f7f8fa;color:var(--brand-900)}.table-link:hover{background:#e9eef3}.table-row-interactive:hover td{background:#f6f8fb}.primary-link,.action-tile{display:inline-flex;align-items:center;justify-content:center;padding:12px 16px;border:1px solid var(--brand-900);background:var(--brand-900);color:#fff}.action-tile{min-height:72px;justify-content:flex-start;text-align:left;background:#f2f5f8;color:var(--brand-900);border-color:var(--line-strong)}.action-tile:hover{background:#e8edf3}.form-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-field-full,.form-actions,.detail-card-wide{grid-column:1 / -1}.form-actions,.action-row{display:flex;justify-content:flex-end;gap:12px}.feedback-error,.feedback-success{padding:12px 14px;border:1px solid}.feedback-error{color:var(--danger);border-color:#d4a7a7;background:#f5e7e7}.feedback-success{color:var(--success);border-color:#9fbdab;background:#e6f0e9}.info-grid,.operator-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.info-label{display:block;margin-bottom:6px;font-size:12px;color:var(--ink-500);text-transform:uppercase;letter-spacing:.08em}.timeline-list,.requirement-grid,.document-list{display:grid;gap:12px}.requirement-item,.document-item,.upload-panel{padding:14px;border:1px solid var(--line);background:#fafbfc;display:grid;gap:8px}.requirement-head,.document-title-row,.timeline-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.requirement-item span,.document-main span,.document-meta span,.document-empty p{color:var(--ink-500);font-size:13px}.requirement-count{color:var(--brand-900);font-weight:700}.section-split{margin-bottom:16px}.document-item{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;align-items:center}.document-main,.document-meta{display:grid;gap:4px}.document-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}.document-empty{padding:14px;border:1px solid var(--line);background:#fafbfc}.preview-card{display:grid;gap:16px}.preview-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.preview-toolbar p{margin:4px 0 0;color:var(--ink-500)}.preview-frame{width:100%;min-height:720px;border:1px solid var(--line);background:#fff}.preview-image{width:100%;max-height:720px;object-fit:contain;border:1px solid var(--line);background:#fff}.timeline-item{padding:14px;border:1px solid var(--line);background:#fafbfc;display:grid;gap:6px}.timeline-item:hover{background:#f1f5f9}.timeline-item span{color:var(--ink-500);font-size:13px}.timeline-item p{margin:0}.checkbox-row{display:inline-flex;align-items:center;gap:8px}.brand-mark{display:inline-flex;align-items:center;gap:16px;max-width:100%}.brand-mark-compact{gap:12px}.brand-mark-stacked{display:grid;justify-items:start;gap:12px}.brand-logo-frame{display:grid;place-items:center;padding:10px 12px;border:1px solid var(--line-strong);background:#fff;min-width:164px}.brand-mark-compact .brand-logo-frame{min-width:110px;padding:8px 10px}.brand-logo-image{display:block;width:180px;max-width:100%;height:auto}.brand-mark-compact .brand-logo-image{width:116px}.brand-copy{display:grid;gap:4px}.brand-copy strong{letter-spacing:.08em;text-transform:uppercase}.brand-headline-plain{text-transform:none;letter-spacing:.02em}.brand-mark-stacked .brand-copy{gap:2px}.brand-mark-stacked .brand-headline{font-size:12px;line-height:1.25}.brand-copy span{color:var(--ink-700);font-size:13px}.brand-mark-inverted .brand-logo-frame{background:#fffffff5;border-color:#ffffff52}.brand-mark-inverted .brand-copy span,.brand-mark-inverted .brand-copy strong{color:#fff}.brand-divider{height:1px;background:#ffffff2e}.auth-brand-panel{display:grid;gap:8px;padding:20px;border:1px solid rgba(21,50,91,.16);background:#ffffff61}.auth-brand-panel p:last-child{margin-bottom:0}.auth-highlights{display:grid;gap:12px}.highlight-item{display:grid;gap:6px;padding:14px 16px;border:1px solid rgba(21,50,91,.16);background:#ffffff73}.highlight-item strong{text-transform:uppercase;font-size:13px;letter-spacing:.08em}.auth-form-header{display:grid;gap:6px}.practice-overview-card{display:grid;gap:18px}.overview-pill-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.overview-pill{display:grid;gap:6px;padding:14px;border:1px solid var(--line);background:var(--panel-soft)}.overview-pill span{color:var(--ink-500);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.detail-note-block{padding:14px;border:1px solid var(--line);background:var(--panel-soft)}.detail-copy-block{margin:0;color:var(--ink-900);white-space:pre-wrap}.badge-status,.mini-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border:1px solid var(--line-strong);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;background:#f4f6f8}.status-bozza{background:#f1f4f7;color:var(--ink-700)}.status-inviata{background:#e8eef6;color:var(--brand-900)}.status-in-lavorazione{background:#fff4d6;color:#7b5a00;border-color:#d0b15c}.status-sospesa{background:#f7e6e6;color:var(--danger);border-color:#d4a7a7}.status-completata{background:#e6f0e9;color:var(--success);border-color:#9fbdab}.mini-badge{background:#edf2f7;color:var(--ink-700)}.mini-badge-muted{background:#f3f5f7}.toast-stack{position:fixed;right:20px;bottom:20px;display:grid;gap:10px;width:min(360px,calc(100vw - 32px));z-index:30}.toast-item{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line-strong);background:#fff;box-shadow:var(--shadow)}.toast-success{border-left:4px solid var(--success)}.toast-error{border-left:4px solid var(--danger)}.toast-info{border-left:4px solid var(--brand-700)}.toast-close{border:0;padding:0;background:transparent;color:var(--ink-500)}.toast-close:hover{color:var(--ink-900)}@media (max-width: 960px){.auth-card,.hero-grid,.stats-grid,.stats-grid-compact,.detail-grid,.dashboard-grid,.quick-actions-grid,.form-preview,.info-grid,.operator-grid,.document-item{grid-template-columns:1fr}.main-header{flex-direction:column}.app-shell-sidebar-open{grid-template-columns:280px minmax(0,1fr)}.sidebar{width:280px}.overview-pill-grid{grid-template-columns:1fr}.preview-toolbar,.section-header{flex-direction:column}}
