/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--spacing:.25rem;--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.start{inset-inline-start:var(--spacing)}.table{display:table}.table-row{display:table-row}.resize{resize:both}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--background:#f4f7fb;--foreground:#172033;--panel:#fff;--panel-soft:#f8fafc;--line:#d9e2ee;--muted:#64748b;--blue:#215ba0;--blue-dark:#174879;--green:#4baf4f;--green-soft:#eaf7ec;--amber:#f6b73c;--amber-soft:#fff6df;--red:#c24138;--shadow:0 18px 45px #1930541f}*{box-sizing:border-box}body{background:var(--background);color:var(--foreground);margin:0;font-family:Arial,Helvetica,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{grid-template-columns:292px minmax(0,1fr);min-height:100vh;transition:grid-template-columns .18s;display:grid}.app-shell.sidebar-collapsed{grid-template-columns:88px minmax(0,1fr)}.sidebar{border-right:1px solid var(--line);background:#fff;flex-direction:column;gap:24px;height:100vh;padding:24px;display:flex;position:sticky;top:0}.brand-block{justify-content:space-between;align-items:center;gap:12px;display:flex}.brand-block img{width:min(210px,100%);height:auto;transition:width .18s,opacity .18s}.sidebar-collapsed .brand-block{justify-content:center}.sidebar-collapsed .brand-block img{opacity:0;width:0;overflow:hidden}.menu-toggle{background:#fff;border:1px solid #d9e2ee;border-radius:8px;flex:none;place-items:center;gap:4px;width:36px;height:36px;display:inline-grid}.menu-toggle span{background:#475569;border-radius:999px;width:16px;height:2px;display:block}.side-nav{gap:10px;display:grid}.protocol-row,.ghost-action,.primary-action,.inverter-tabs button{border:0;border-radius:8px}.nav-group{gap:6px;display:grid}.nav-group-button{color:#334155;text-align:left;background:0 0;border:0;border-radius:8px;grid-template-columns:34px minmax(0,1fr) 18px;align-items:center;gap:10px;width:100%;min-height:42px;padding:6px 10px;font-weight:800;display:grid}.nav-group-button:hover,.nav-group-button.active{color:var(--blue);background:#edf4fc}.nav-icon{background:#eef4fb;border:1px solid #d8e6f5;border-radius:8px;place-items:center;width:30px;height:30px;display:inline-grid;position:relative}.nav-group-button.active .nav-icon{background:var(--blue);border-color:var(--blue)}.nav-icon:before,.nav-icon:after{content:"";display:block;position:absolute}.nav-icon.folder:before{border:2px solid var(--blue);border-top-width:4px;border-radius:2px;width:15px;height:11px}.nav-icon.folder:after{border:2px solid var(--blue);background:#eef4fb;border-bottom:0;border-radius:2px 2px 0 0;width:8px;height:4px;top:8px;left:8px}.nav-icon.bolt:before{background:var(--blue);clip-path:polygon(55% 0,100% 0,62% 43%,100% 43%,32% 100%,45% 55%,0 55%);width:9px;height:18px}.nav-icon.file:before{border:2px solid var(--blue);border-radius:2px;width:14px;height:18px}.nav-icon.file:after{background:var(--blue);width:7px;height:2px;box-shadow:0 5px 0 var(--blue);top:9px}.nav-icon.template:before{border:2px solid var(--blue);border-radius:2px;width:15px;height:18px}.nav-icon.template:after{background:var(--blue);width:12px;height:2px;box-shadow:0 5px 0 var(--blue);top:9px;left:9px}.nav-icon.users:before{background:var(--blue);width:8px;height:8px;box-shadow:10px 0 0 var(--blue);border-radius:999px;top:7px;left:6px}.nav-icon.users:after{background:var(--blue);border-radius:999px 999px 4px 4px;width:20px;height:8px;top:17px;left:5px}.nav-group-button.active .nav-icon.folder:before,.nav-group-button.active .nav-icon.folder:after,.nav-group-button.active .nav-icon.file:before,.nav-group-button.active .nav-icon.template:before{border-color:#fff}.nav-group-button.active .nav-icon.folder:after{background:var(--blue)}.nav-group-button.active .nav-icon.bolt:before,.nav-group-button.active .nav-icon.file:after,.nav-group-button.active .nav-icon.template:after,.nav-group-button.active .nav-icon.users:after{background:#fff;box-shadow:0 5px #fff}.nav-group-button.active .nav-icon.users:before{background:#fff;box-shadow:10px 0 #fff}.chevron{border-bottom:2px solid;border-right:2px solid;width:8px;height:8px;transition:transform .16s;transform:rotate(45deg)}.chevron.open{transform:rotate(225deg)}.submenu{gap:4px;padding-left:44px;display:grid}.submenu-item{color:#64748b;text-align:left;background:0 0;border:0;border-radius:8px;width:100%;padding:9px 12px;font-size:13px;font-weight:800}.submenu-item:hover,.submenu-item.active{color:var(--blue);background:#edf4fc}.sidebar-collapsed .sync-card,.sidebar-collapsed .nav-label,.sidebar-collapsed .chevron,.sidebar-collapsed .submenu{display:none}.sidebar-collapsed .nav-group-button{grid-template-columns:34px;justify-content:center;padding:6px}.sync-card{background:var(--green-soft);border:1px solid #cfead3;border-radius:8px;grid-template-columns:auto 1fr;gap:12px;margin-top:auto;padding:14px;display:grid}.sync-card strong{margin-bottom:4px;font-size:13px;display:block}.sync-card p{color:#426253;margin:0;font-size:12px;line-height:1.4}.status-dot{background:var(--green);border-radius:999px;width:10px;height:10px;margin-top:4px;box-shadow:0 0 0 4px #4baf4f29}.workspace{min-width:0;padding:24px}.topbar{justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;display:flex}.eyebrow{color:var(--blue);text-transform:uppercase;letter-spacing:0;margin:0 0 4px;font-size:12px;font-weight:800}.breadcrumb{color:#64748b;margin:0 0 8px;font-size:14px}h1,h2,h3,p{overflow-wrap:anywhere}h1{margin:0;font-size:clamp(26px,3vw,38px);line-height:1.08}.top-summary{max-width:760px;color:var(--muted);margin:8px 0 0;font-size:14px;line-height:1.45}h2{margin:0;font-size:18px;line-height:1.2}h3{margin:0 0 12px;font-size:15px}.login-shell{background:#f3f7fb;place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{border:1px solid var(--line);width:min(440px,100%);box-shadow:var(--shadow);background:#fff;border-radius:8px;gap:24px;padding:28px;display:grid}.login-brand{text-align:center;justify-items:center;gap:16px;display:grid}.login-brand img{width:230px;max-width:100%;height:auto}.login-brand h1{color:var(--foreground);letter-spacing:0;margin:0;font-size:24px}.login-form{gap:12px;display:grid}.login-form label{gap:6px;display:grid}.login-form span{color:var(--muted);font-size:12px;font-weight:900}.login-feedback{color:#991b1b;background:#fee2e2;border-radius:8px;margin:0;padding:10px 12px;font-weight:800}.user-strip{align-items:center;gap:10px;display:flex}.inverter-tabs button{color:#475569;background:0 0;padding:9px 13px;font-weight:800}.inverter-tabs button.selected{color:var(--blue);background:#fff;box-shadow:0 1px 4px #0f172a1f}.user-card,.connection-card{border:1px solid var(--line);background:#fff;border-radius:8px;align-content:center;gap:2px;min-height:42px;padding:8px 12px;display:grid}.user-card strong,.connection-card strong{color:var(--foreground);font-size:13px;line-height:1.1}.user-card span{color:var(--muted);font-size:12px;font-weight:800}.user-card button{color:var(--blue);background:0 0;border:0;justify-self:start;margin-top:4px;padding:0;font-size:11px;font-weight:900}.connection-card{grid-template-columns:auto 1fr;align-items:center;min-width:210px;max-width:270px}.connection-card.office{background:var(--green-soft);border-color:#cfead3}.connection-card.field{background:var(--amber-soft);border-color:#f4dfae}.primary-action{background:var(--blue);color:#fff;min-height:42px;padding:0 18px;font-weight:800}.primary-action:hover{background:var(--blue-dark)}.summary-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.field-summary-strip{grid-template-columns:repeat(6,minmax(0,1fr))}.is-hidden{display:none!important}.summary-strip div{background:var(--panel);border:1px solid var(--line);border-radius:8px;min-height:72px;padding:10px 12px}.summary-strip span{color:var(--blue);font-size:21px;font-weight:900;line-height:1;display:block}.field-summary-strip .pending span{color:var(--red)}.field-summary-strip .partial span{color:#8a5d09}.field-summary-strip .review span{color:var(--blue)}.field-summary-strip .finished span,.field-summary-strip .synced span{color:#287235}.field-summary-strip .local span{color:#8a5d09}.field-summary-strip .pending{background:#fff7f6}.field-summary-strip .partial,.field-summary-strip .local{background:#fffaf0}.field-summary-strip .review{background:#f3f8fe}.field-summary-strip .finished,.field-summary-strip .synced{background:#f2fbf4}.summary-strip p{color:var(--muted);margin:5px 0 0;font-size:11px;font-weight:800;line-height:1.15}.content-grid{grid-template-columns:minmax(280px,.85fr) minmax(420px,1.4fr);align-items:start;gap:16px;display:grid}.panel{background:var(--panel);border:1px solid var(--line);min-width:0;box-shadow:var(--shadow);border-radius:8px}.panel-title{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding:18px;display:flex}.panel-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.pill{background:var(--green-soft);color:#287235;white-space:nowrap;border-radius:999px;flex:none;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.pill.warning{background:var(--amber-soft);color:#8a5d09}.detail-list{margin:0;padding:8px 18px 18px;display:grid}.detail-list div{border-bottom:1px solid #edf1f6;grid-template-columns:120px minmax(0,1fr);gap:12px;padding:10px 0;display:grid}.detail-list div:last-child{border-bottom:0}.detail-list dt{color:var(--muted);font-size:13px;font-weight:800}.detail-list dd{margin:0;font-size:14px;font-weight:700}.workflow-steps{gap:10px;padding:18px;display:grid}.workflow-steps div{background:var(--panel-soft);border:1px solid #e6edf5;border-radius:8px;padding:14px}.workflow-steps div.active{background:#edf4fc;border-color:#c5d9f1}.workflow-steps strong{color:var(--blue);margin-bottom:5px;font-size:14px;display:block}.workflow-steps p{color:#475569;margin:0;font-size:13px;line-height:1.45}.workflow-panel,.protocol-panel,.measurements-panel,.attachments-panel,.exports-panel,.decisions-panel,.field-projects-panel,.field-tests-panel{grid-column:span 1}.field-projects-panel,.field-tests-panel,.test-panel,.measurements-panel,.attachments-panel,.register-actions-panel{grid-column:1/-1}.protocol-list{max-height:360px;padding:8px;display:grid;overflow:auto}.protocol-row{width:100%;color:var(--foreground);text-align:left;background:0 0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 10px;display:grid}.protocol-row:hover,.protocol-row.active{background:#edf4fc}.protocol-row strong{font-size:13px}.protocol-row em{color:var(--muted);font-size:12px;font-style:normal;font-weight:800}.field-project-list,.field-test-list{gap:8px;padding:18px;display:grid}.field-project-list{grid-template-columns:1fr}.field-project-list button,.field-test-list button{background:var(--panel-soft);width:100%;color:var(--foreground);text-align:left;border:1px solid #e2e8f0;border-radius:8px}.field-project-list button{grid-template-columns:minmax(130px,1fr) minmax(120px,.8fr) 72px minmax(120px,auto);align-items:center;gap:8px;min-height:46px;padding:9px 10px;display:grid}.field-test-list button{grid-template-columns:minmax(0,1fr) 34px 92px;align-items:center;gap:10px;min-height:44px;padding:9px 10px;display:grid}.review-test-list button{grid-template-columns:minmax(0,1fr) 92px}.field-project-list button:hover,.field-test-list button:hover,.field-project-list button.selected,.field-test-list button.selected{background:#edf4fc;border-color:#9fc0e8}.field-project-list button.selected,.field-test-list button.selected{box-shadow:inset 3px 0 0 var(--blue)}.field-project-list strong,.field-test-list strong{color:var(--blue);font-size:13px;line-height:1.2}.field-project-list span,.field-project-list small{color:var(--muted);font-size:12px;font-weight:800;line-height:1.2}.field-project-list em{color:#475569;text-align:center;background:#fff;border-radius:999px;justify-self:end;place-items:center;max-width:120px;min-height:26px;padding:4px 8px;font-size:10px;font-style:normal;font-weight:900;line-height:1.1;display:inline-grid}.field-test-list .test-state{min-height:24px;font-size:10px}.approval-panel{grid-column:1/-1}.approval-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:18px 18px 0;display:grid}.approval-summary div{background:var(--panel-soft);border:1px solid #e6edf5;border-radius:8px;gap:5px;padding:12px;display:grid}.approval-summary span,.approval-card span{color:var(--muted);font-size:11px;font-weight:900}.approval-summary strong{color:var(--foreground);font-size:13px;line-height:1.25}.approval-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:18px;display:grid}.approval-card{background:var(--panel-soft);border:1px solid #e6edf5;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px;display:grid}.approval-card.signed{background:var(--green-soft);border-color:#c9e9ce}.approval-card div{gap:5px;display:grid}.approval-card strong{color:var(--blue);font-size:14px;line-height:1.2}.approval-card p{color:#475569;margin:0;font-size:12px;font-weight:800;line-height:1.35}.approval-card button{min-width:148px}.sync-indicator{border:1px solid;border-radius:8px;justify-self:end;place-items:center;width:30px;height:30px;padding:0;display:inline-grid}.sync-indicator.synced{color:#287235;background:#eef8f0}.sync-indicator.local{color:#8a5d09;background:#fff7df}.sync-icon{width:16px;height:16px;display:inline-block;position:relative}.sync-icon:before,.sync-icon:after{content:"";display:block;position:absolute}.sync-indicator.synced .sync-icon:before{border-bottom:2px solid;border-left:2px solid;width:10px;height:6px;top:4px;left:3px;transform:rotate(-45deg)}.sync-indicator.local .sync-icon:before{border:2px solid;border-radius:999px;inset:2px}.sync-indicator.local .sync-icon:after{background:currentColor;border-radius:999px;width:10px;height:2px;top:7px;left:3px;transform:rotate(-35deg)}.ghost-action{min-height:36px;color:var(--blue);background:#eef4fb;padding:0 12px;font-size:13px;font-weight:900}.danger-action{color:var(--red);background:#fde9e7}.test-layout{grid-template-columns:1fr;gap:12px;padding:18px;display:grid}.template-unavailable-panel{grid-column:1/-1}.template-unavailable{background:#fffaf0;border:1px solid #f4dfae;border-radius:8px;gap:8px;margin:18px;padding:18px;display:grid}.template-unavailable strong{color:#8a5d09;font-size:18px}.template-unavailable p{color:#73551d;max-width:720px;margin:0;font-size:14px;line-height:1.45}.common-data{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.project-create-flow{grid-template-columns:1fr}.compact-form-list{grid-template-columns:1fr;gap:8px;padding:18px;display:grid}.protocol-section-list{gap:14px}.protocol-field-section{gap:8px;display:grid}.protocol-field-section h3{color:var(--blue);letter-spacing:0;text-transform:uppercase;margin:0;font-size:13px;font-weight:950}.protocol-field-section>div{gap:8px;display:grid}.common-data label,.field-checks,.upload-box{background:var(--panel-soft);border:1px solid #e6edf5;border-radius:8px}.common-data label{gap:8px;padding:12px;display:grid}.compact-form-list label{background:var(--panel-soft);border:1px solid #e6edf5;border-radius:8px;grid-template-columns:190px minmax(0,1fr);align-items:center;gap:12px;min-height:44px;padding:8px 10px;display:grid}.common-data span,.upload-box span{color:var(--muted);font-size:12px;font-weight:900}.compact-form-list span{font-size:12px;line-height:1.2}.compact-form-list input{min-height:34px;padding:7px 9px;font-size:13px}.role-selector{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:18px 18px 0;display:grid}.role-selector button{min-height:38px;color:var(--blue);background:#eef4fb;border:1px solid #c8d9ee;border-radius:8px;font-weight:900}.role-selector button.selected{color:#fff;background:var(--blue);border-color:var(--blue)}.role-selector.compact{padding:0}.user-list{gap:8px;padding:18px;display:grid}.user-admin-layout{grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:12px;padding:18px;display:grid}.user-admin-layout .user-list{align-content:start;padding:0}.user-row{text-align:left;background:var(--panel-soft);border:1px solid #e2ebf5;border-radius:8px;grid-template-columns:minmax(0,1.4fr) minmax(130px,.6fr) 110px;align-items:center;gap:10px;width:100%;padding:10px 12px;display:grid}.user-row.selected{box-shadow:inset 3px 0 0 var(--blue);background:#edf5ff;border-color:#7fb5f0}.user-row.inactive{opacity:.72}.user-row.inactive em{color:#aa2d2a;background:#fde7e4}.user-row div{gap:3px;display:grid}.user-row strong{color:var(--blue);font-size:14px}.user-row span,.user-row p{color:var(--muted);margin:0;font-size:12px;font-weight:800}.user-row em{color:#1f6f38;background:#e8f6ec;border-radius:999px;justify-self:end;padding:7px 12px;font-style:normal;font-weight:900}.user-edit-panel{background:#fff;border:1px solid #dbe7f5;border-radius:8px;gap:12px;min-width:0;padding:14px;display:grid}.user-edit-heading{justify-content:space-between;align-items:start;gap:10px;display:flex}.user-edit-heading h3,.user-security-box h3{color:var(--foreground);margin:0;font-size:17px}.status-badge{white-space:nowrap;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:950}.status-badge.approved{color:#1f6f38;background:#e8f6ec}.status-badge.rejected{color:#aa2d2a;background:#fde7e4}.user-edit-fields,.user-action-row{padding:0}.user-security-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:12px;display:grid}.user-security-box{background:var(--panel-soft);border:1px solid #e6edf5;border-radius:8px;gap:10px;min-width:0;padding:12px;display:grid}.user-security-box label{gap:6px;display:grid}.user-security-box span{color:var(--muted);font-size:12px;font-weight:900}.file-button{cursor:pointer;justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:hidden}.file-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.user-signature-pad .signature-pad-toolbar>div{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.user-signature-pad canvas{height:140px}input,select{width:100%;min-width:0;min-height:38px;color:var(--foreground);background:#fff;border:1px solid #cfd9e6;border-radius:6px;outline:none;padding:8px 10px}input:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #215ba01f}input:disabled{color:#64748b;cursor:not-allowed;background:#eef2f7}.field-checks{padding:12px}.checklist-toolbar{grid-template-columns:34px minmax(0,1fr) 34px;align-items:center;gap:10px;margin-bottom:12px;display:grid}.checklist-toolbar h3{margin:0 0 3px}.checklist-toolbar span{color:var(--muted);font-size:12px;font-weight:900}.icon-step{background:#eef4fb;border:1px solid #c5d9f1;border-radius:8px;width:34px;height:34px;position:relative}.icon-step:before{content:"";border-right:2px solid var(--blue);border-bottom:2px solid var(--blue);width:10px;height:10px;position:absolute;top:11px}.icon-step.previous:before{left:13px;transform:rotate(135deg)}.icon-step.next:before{right:13px;transform:rotate(-45deg)}.checklist-items{gap:8px;display:grid}.validation-row{background:#fff;border:1px solid #e6edf5;border-radius:8px;grid-template-columns:minmax(220px,1fr) auto minmax(220px,.9fr);align-items:center;gap:10px;padding:8px 10px;display:grid}.validation-row>strong{color:#334155;font-size:13px;line-height:1.3}.validation-actions{grid-template-columns:repeat(3,32px);gap:6px;display:grid}.status-option{background:var(--panel-soft);color:#64748b;border:1px solid #e2e8f0;border-radius:8px;place-items:center;width:32px;height:32px;min-height:32px;padding:0;display:inline-grid}.status-option span{background:#e2e8f0;border-radius:999px;place-items:center;width:22px;height:22px;display:inline-grid;position:relative}.status-option.ok.selected{color:#287235;background:#eaf7ec;border-color:#bfe5c6}.status-option.no-ok.selected{color:var(--red);background:#fde9e7;border-color:#f5c7c1}.status-option.na.selected{color:var(--blue);background:#edf4fc;border-color:#c5d9f1}.status-option.ok span:before{content:"";border-bottom:3px solid #94a3b8;border-left:3px solid #94a3b8;width:12px;height:7px;transform:translateY(-1px)rotate(-45deg)}.status-option.ok.selected span{background:#8cc63f}.status-option.ok.selected span:before{border-color:#fff}.status-option.no-ok span:before,.status-option.no-ok span:after{content:"";background:#94a3b8;border-radius:999px;width:13px;height:3px;position:absolute}.status-option.no-ok span:before{transform:rotate(45deg)}.status-option.no-ok span:after{transform:rotate(-45deg)}.status-option.no-ok.selected span{background:#ef1d2d}.status-option.no-ok.selected span:before,.status-option.no-ok.selected span:after{background:#fff}.status-option.na span:before{content:"NA";color:#64748b;font-size:8px;font-weight:900}.status-option.na.selected span{background:var(--blue);color:#fff}.status-option.na.selected span:before{color:#fff}.validation-row label{gap:7px;display:grid}.validation-row label span{color:var(--muted);font-size:11px;font-weight:900}.inverter-tabs{flex-wrap:wrap;gap:8px;padding:14px 18px 6px;display:flex}.inverter-workbar{background:var(--panel-soft);border:1px solid #e6edf5;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin:10px 18px 0;padding:10px 12px;display:flex}.inverter-workbar div:first-child{gap:2px;display:grid}.inverter-workbar span{color:var(--muted);font-size:11px;font-weight:900}.inverter-workbar strong{color:var(--blue);font-size:15px}.inverter-workbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.string-pagination{background:#eef4fb;border:1px solid #c5d9f1;border-radius:8px;grid-template-columns:34px minmax(0,1fr) 34px;align-items:center;gap:10px;margin:10px 18px 0;padding:10px 12px;display:grid}.string-pagination div{text-align:center;gap:2px;display:grid}.string-pagination strong{color:var(--blue);font-size:14px}.string-pagination span{color:var(--muted);font-size:11px;font-weight:900}.measurement-table{gap:6px;max-width:100%;padding:12px 18px 18px;display:grid;overflow-x:auto}.table-row{background:#fff;border:1px solid #e6edf5;border-radius:8px;grid-template-columns:86px minmax(150px,.8fr) minmax(150px,.8fr) 112px minmax(180px,1fr) 84px;align-items:center;gap:8px;min-width:920px;padding:8px;display:grid}.table-head{background:var(--blue);color:#fff;font-size:12px;font-weight:900}.table-row:not(.table-head){font-size:13px}.table-row input{min-height:34px;padding:7px 9px;font-size:13px}.table-row strong{font-size:13px}.result{border-radius:6px;justify-content:center;align-items:center;min-height:34px;font-size:13px;font-weight:900;display:inline-flex}.result.aprobado{background:var(--green-soft);color:#287235}.result.pendiente{background:var(--amber-soft);color:#8a5d09}.result.rechazado{color:var(--red);background:#fde9e7}.row-action{min-height:34px;color:var(--red);background:#fff3f2;border:1px solid #f5c7c1;border-radius:6px;padding:0 10px;font-size:13px;font-weight:900}.attachment-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:18px;display:grid}.attachment-grid.report-grid{grid-template-columns:minmax(0,1fr)}.report-annex-list{grid-template-columns:1fr;gap:12px;padding:18px;display:grid}.report-annex-card{background:var(--panel-soft);border:1px solid #e6edf5;border-radius:8px;grid-template-columns:86px minmax(0,1fr) 112px 76px;align-items:end;gap:10px;padding:10px;display:grid}.report-annex-number{color:var(--blue);align-self:center;font-size:13px;line-height:1.2}.report-annex-card label{gap:6px;display:grid}.report-annex-card label span{color:var(--muted);font-size:11px;font-weight:900}.report-annex-card input{min-height:34px;padding:7px 9px;font-size:12px}.report-annex-card input::placeholder{font-size:12px}.report-annex-card .upload-box{background:0 0;border:0;padding:0}.file-picker-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.file-picker-label{width:106px;min-height:34px;color:var(--blue);text-align:center;background:#eef4fb;border:1px solid #c5d9f1;border-radius:6px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-style:normal;font-weight:900;line-height:1;display:inline-flex}.upload-box{gap:10px;padding:14px;display:grid}.photo-annex-panel{grid-column:1/-1}.photo-annex-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:18px;display:grid}.photo-card{background:var(--panel-soft);border:1px solid #e6edf5;border-radius:8px;gap:12px;padding:14px;display:grid}.photo-card label{gap:8px;display:grid}.register-actions{justify-content:flex-end;gap:10px;padding:14px 18px;display:flex}.signature-action.signed{background:var(--green-soft);color:#287235;border-color:#c9e9ce}.photo-card span{color:var(--muted);font-size:12px;font-weight:900}.signature-pad-toolbar span{color:var(--muted);font-size:11px;font-weight:900}.signature-pad{gap:10px;min-width:0;display:grid}.signature-pad-toolbar{justify-content:space-between;align-items:center;gap:10px;display:flex}.signature-pad-toolbar .ghost-action{min-height:34px;padding:0 12px;font-size:12px}.signature-pad canvas{touch-action:none;background:linear-gradient(#fff,#fff) padding-box padding-box,repeating-linear-gradient(0deg,#0000 0 27px,#215ba014 28px);border:1px solid #c5d9f1;border-radius:8px;width:100%;height:170px;display:block}.modal-backdrop{z-index:40;background:#0f172a61;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.signature-modal{border:1px solid var(--line);background:#fff;border-radius:8px;gap:0;width:min(680px,100%);display:grid;overflow:hidden;box-shadow:0 24px 70px #0f172a42}.operation-modal{border:1px solid var(--line);text-align:center;background:#fff;border-radius:8px;justify-items:center;gap:18px;width:min(560px,100%);padding:44px 36px 34px;display:grid;box-shadow:0 24px 70px #0f172a42}.operation-modal h2{color:var(--foreground);margin:0;font-size:24px;line-height:1.15}.operation-modal p{max-width:420px;color:var(--muted);margin:-4px 0 0;font-size:18px;font-weight:700;line-height:1.4}.operation-icon{border-radius:999px;place-items:center;width:104px;height:104px;font-size:56px;font-weight:800;line-height:1;display:grid}.operation-icon.question{color:#82aebf;border:5px solid #9bbdca}.operation-icon.success{color:#8bd778;border:5px solid #def5d8}.operation-icon.error{color:#dc2626;border:5px solid #fee2e2}.operation-spinner{border:4px solid #e5edf6;border-top-color:var(--blue);border-radius:999px;width:48px;height:48px;animation:.85s linear infinite spin}.operation-select{text-align:left;gap:8px;width:100%;display:grid}.operation-select span{color:var(--muted);font-size:13px;font-weight:800}.operation-select select{width:100%;min-height:48px;color:var(--foreground);font:inherit;background:#fff;border:1px solid #c9d6e6;border-radius:8px;padding:0 14px;font-weight:800}.operation-actions{flex-wrap:wrap;justify-content:center;gap:34px;width:100%;margin-top:4px;display:flex}.operation-actions.single{gap:0}.danger-confirm-action,.success-confirm-action{color:#fff;cursor:pointer;border:0;border-radius:8px;min-width:120px;min-height:52px;padding:0 24px;font-size:18px;font-weight:900}.danger-confirm-action{background:#ef3b38}.success-confirm-action{background:#3ca447}.modal-title{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding:18px;display:flex}.modal-title h2{margin:4px 0 0;font-size:22px;line-height:1.15}.signature-modal .signature-pad{padding:18px}.signature-modal .signature-pad canvas{height:220px}.modal-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;padding:14px 18px;display:flex}@keyframes spin{to{transform:rotate(360deg)}}.export-list{gap:10px;padding:18px;display:grid}.export-list button{background:var(--panel-soft);width:100%;color:var(--foreground);text-align:left;border:1px solid #e6edf5;border-radius:8px;gap:5px;padding:14px;display:grid}.export-list strong{color:var(--blue);font-size:14px}.export-list span{color:var(--muted);font-size:13px;line-height:1.4}.export-test-list{gap:8px;padding:18px;display:grid}.export-test-row{background:var(--panel-soft);border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:minmax(0,1fr) 150px;align-items:center;gap:10px;padding:9px 10px;display:grid}.export-test-row.selected{box-shadow:inset 3px 0 0 var(--blue);background:#edf4fc;border-color:#9fc0e8}.export-test-select{min-width:0;color:var(--foreground);text-align:left;background:0 0;border:0;grid-template-columns:minmax(0,1fr) 92px;align-items:center;gap:10px;padding:0;display:grid}.export-test-select strong{color:var(--blue);font-size:13px;font-weight:900;line-height:1.2}.export-test-select .test-state{min-height:24px;font-size:10px}.compact-action{white-space:nowrap;min-height:34px;padding:0 12px;font-size:11px}.template-workflow{grid-template-columns:minmax(300px,.7fr) minmax(460px,1.3fr)}.template-guide-panel{grid-column:1/-1}.marker-guide-grid{gap:8px;padding:18px;display:grid}.marker-guide-row{background:var(--panel-soft);border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:110px minmax(250px,.8fr) minmax(260px,1fr);align-items:center;gap:10px;min-height:46px;padding:8px 10px;display:grid}.marker-guide-row span{color:var(--blue);text-transform:uppercase;font-size:11px;font-weight:900}.marker-guide-row code{overflow-wrap:anywhere;color:var(--foreground);font-size:12px;font-weight:900;display:block}.marker-guide-row p{color:var(--muted);margin:0;font-size:12px;font-weight:750;line-height:1.3}.marker-guide-rules{gap:6px;padding:0 18px 18px;display:grid}.marker-guide-rules p{color:var(--muted);margin:0;font-size:12px;font-weight:800}.template-catalog-panel{grid-row:span 2}.template-editor-panel,.template-history-panel,.template-create-panel{grid-column:span 1}.template-create-panel{grid-column:2}.template-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:14px 18px 0;display:grid}.template-stats div{background:var(--panel-soft);border:1px solid #e2e8f0;border-radius:8px;min-height:64px;padding:10px 12px}.template-stats span{color:var(--blue);font-size:22px;font-weight:900;line-height:1;display:block}.template-stats p{color:var(--muted);margin:5px 0 0;font-size:11px;font-weight:800;line-height:1.2}.template-list{gap:8px;max-height:560px;padding:18px;display:grid;overflow:auto}.template-list button{background:var(--panel-soft);width:100%;min-height:66px;color:var(--foreground);text-align:left;border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:minmax(0,1fr) 76px;gap:5px 10px;padding:10px 12px;display:grid}.template-list button:hover,.template-list button.selected{background:#edf4fc;border-color:#9fc0e8}.template-list button.selected{box-shadow:inset 3px 0 0 var(--blue)}.template-list strong{font-size:13px;line-height:1.25}.template-list span{color:var(--muted);text-align:right;font-size:12px;font-weight:800}.template-list em{color:var(--blue);grid-column:1/-1;font-size:11px;font-style:normal;font-weight:900}.template-current-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:18px;display:grid}.template-document{background:var(--panel-soft);border:1px solid #e2e8f0;border-radius:8px;gap:6px;min-height:132px;padding:12px;display:grid}.template-document.ready{background:#f4fbf6;border-color:#cfead3}.template-document>span{width:48px;height:34px;color:var(--blue);background:#edf4fc;border:1px solid #cde0f6;border-radius:8px;place-items:center;font-size:12px;font-weight:900;display:inline-grid}.template-document strong{font-size:13px}.template-document p{min-height:30px;color:var(--muted);margin:0;font-size:11px;font-weight:800;line-height:1.25}.template-version-form{gap:12px;padding:0 18px 18px;display:grid}.template-section-heading{justify-content:space-between;align-items:flex-start;gap:12px;padding-top:2px;display:flex}.template-section-heading h3{margin:0;font-size:15px}.form-row.compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.form-row.compact label,.template-upload-row{gap:6px;display:grid}.form-row.compact span,.template-upload-row>span{color:var(--muted);font-size:12px;font-weight:900}.form-row.compact input{width:100%;min-height:40px;color:var(--foreground);background:#fff;border:1px solid #cbd8e6;border-radius:8px;padding:0 12px;font-size:13px;font-weight:700}.template-upload-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.template-upload-row{background:var(--panel-soft);border:1px solid #e2e8f0;border-radius:8px;min-height:76px;padding:10px;position:relative}.template-upload-row input{opacity:0;cursor:pointer;position:absolute;inset:0}.template-upload-row strong{min-height:34px;color:var(--blue);background:#edf4fc;border:1px solid #cde0f6;border-radius:8px;justify-content:center;align-items:center;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.template-actions{justify-content:flex-end;gap:8px;display:flex}.template-version-list{gap:8px;padding:18px;display:grid}.template-version-row{background:var(--panel-soft);border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:minmax(0,1fr) 118px 136px 92px;align-items:center;gap:10px;min-height:54px;padding:10px 12px;display:grid}.template-version-row.marker-row{grid-template-columns:minmax(0,1fr)}.template-version-row strong{font-size:13px;display:block}.template-version-row span,.template-version-row p,.template-version-row em{color:var(--muted);margin:0;font-size:11px;font-style:normal;font-weight:800}.template-empty-state{background:var(--amber-soft);border:1px solid #f4dfae;border-radius:8px;align-content:center;gap:4px;min-height:72px;padding:14px;display:grid}.template-empty-state strong{color:#8a5d09}.template-empty-state span{color:#8a5d09;font-size:12px;font-weight:800}.template-new-test{gap:10px;padding:0 18px 18px;display:grid}.template-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.template-options label{background:var(--panel-soft);min-height:42px;color:var(--foreground);border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:8px;padding:9px 10px;font-size:12px;font-weight:900;display:flex}.document-preview-layout{grid-template-columns:minmax(320px,.9fr) minmax(320px,1.1fr);gap:16px;padding:18px;display:grid}.document-preview-main{align-items:stretch;display:grid}.doc-page-preview{background:#fff;border:1px solid #d9e2ee;border-radius:8px;gap:12px;min-height:520px;max-height:680px;padding:18px;display:grid;overflow:auto;box-shadow:inset 0 0 0 8px #f8fafc}.pdf-page-preview{background:#fff;border:1px solid #d9e2ee;border-radius:8px;grid-template-rows:auto minmax(520px,68vh);gap:12px;min-height:620px;padding:18px;display:grid}.pdf-page-preview iframe{background:#f8fafc;border:1px solid #d9e2ee;border-radius:8px;width:100%;height:100%;min-height:520px}.doc-page-head{border-bottom:2px solid var(--blue);justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:10px;display:flex}.doc-page-head strong{color:var(--blue);font-size:14px}.doc-page-head span,.doc-grid-preview span,.doc-signature-preview span{color:var(--muted);font-size:10px;font-weight:900}.doc-preview-empty{min-height:320px;color:var(--muted);text-align:center;align-content:center;place-items:center;gap:12px;display:grid}.doc-preview-empty strong{color:var(--foreground);font-size:14px}.docx-preview-blocks{align-content:start;gap:8px;display:grid}.docx-preview-blocks p{color:#1f2937;margin:0;font-size:11px;line-height:1.38}.docx-preview-table{border:1px solid #cbd5e1;border-radius:6px;gap:0;margin:6px 0;display:grid;overflow-x:auto}.docx-preview-row{min-width:max-content;display:grid}.docx-preview-row:first-child span{background:var(--blue);color:#fff;font-weight:950}.docx-preview-row span{color:#243041;border-bottom:1px solid #dbe4ef;border-right:1px solid #dbe4ef;min-width:90px;padding:6px 7px;font-size:10px;line-height:1.25}.docx-preview-row span:last-child{border-right:0}.docx-preview-table em{color:var(--muted);padding:7px;font-size:10px;font-style:normal;font-weight:900}.doc-line{background:#e8eef6;border-radius:999px;width:72%;height:10px}.doc-line.wide{width:100%}.doc-grid-preview{background:var(--panel-soft);border:1px solid #e6edf5;border-radius:8px;grid-template-columns:86px minmax(0,1fr);gap:8px 12px;padding:12px;display:grid}.doc-grid-preview strong{color:var(--foreground);font-size:11px;line-height:1.25}.doc-table-preview{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.doc-table-preview span{background:#eef4fb;border:1px solid #d6e4f5;border-radius:6px;min-height:34px}.doc-signature-preview{grid-template-columns:repeat(2,minmax(0,1fr));align-self:end;gap:12px;display:grid}.doc-signature-preview span{text-align:center;border-top:1px solid #94a3b8;padding-top:12px}.document-preview-stack{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.document-chip{background:var(--panel-soft);color:inherit;cursor:pointer;text-align:left;border:1px solid #e6edf5;border-radius:8px;grid-template-columns:48px minmax(0,1fr);align-content:start;gap:4px 10px;padding:14px;display:grid}.document-chip:hover,.document-chip.selected{background:#edf4fc;border-color:#9cc1ec}.document-chip.selected{box-shadow:inset 4px 0 0 var(--blue)}.document-chip span{width:42px;height:42px;color:var(--blue);background:#edf4fc;border:1px solid #c5d9f1;border-radius:8px;grid-row:span 2;place-items:center;font-size:11px;font-weight:900;display:inline-grid}.document-chip strong{color:var(--blue);font-size:13px;line-height:1.2}.document-chip p{color:var(--muted);margin:0;font-size:11px;font-weight:800;line-height:1.35}.decision-list{color:#334155;gap:10px;margin:0;padding:18px 18px 18px 38px;font-size:14px;line-height:1.45;display:grid}.module-grid{grid-template-columns:minmax(460px,1.25fr) minmax(280px,.75fr);align-items:start;gap:16px;display:grid}.project-management{grid-template-columns:minmax(460px,1.15fr) minmax(320px,.85fr);align-items:start;gap:16px;display:grid}.full-panel{grid-column:1/-1}.wide-panel{min-width:0}.project-summary-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding:18px;display:grid}.summary-detail{background:var(--panel-soft);border:1px solid #e2e8f0;border-radius:8px}.summary-detail[open]{background:#fff;border-color:#c5d9f1}.summary-detail summary{color:#475569;cursor:pointer;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:64px;padding:12px;list-style:none;display:grid}.summary-detail summary::-webkit-details-marker{display:none}.summary-detail summary span{font-size:13px;font-weight:900;line-height:1.25}.summary-detail summary strong{min-width:32px;height:32px;color:var(--blue);background:#edf4fc;border-radius:999px;place-items:center;padding:0 8px;font-size:16px;display:inline-grid}.summary-detail div{gap:6px;padding:0 12px 12px;display:grid}.summary-detail button{width:100%;color:var(--foreground);text-align:left;background:#f8fafc;border:1px solid #e2e8f0;border-radius:7px;padding:9px 10px;font-size:13px;font-weight:800}.project-cards{gap:10px;padding:18px;display:grid}.project-card{background:var(--panel-soft);width:100%;color:var(--foreground);text-align:left;border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:minmax(0,1fr) 156px;align-items:start;gap:8px 12px;padding:12px;display:grid}.project-card:hover,.project-card:focus{border-color:#9fc0e8;outline:none}.project-card.selected{box-shadow:inset 3px 0 0 var(--blue);background:#edf4fc;border-color:#9fc0e8}.project-card-main{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px 12px;display:grid}.project-card-main strong{color:var(--blue);margin-bottom:3px;font-size:15px;display:block}.project-card span,.project-card p{color:var(--muted);margin:0;font-size:13px;line-height:1.35}.project-card em{color:#475569;white-space:nowrap;background:#fff;border-radius:999px;align-self:start;padding:5px 8px;font-size:12px;font-style:normal;font-weight:900}.project-test-summary{grid-area:1/2/span 3;gap:4px;display:grid}.test-status-line{border-radius:7px;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:6px;min-height:26px;padding:3px 7px;font-weight:900;line-height:1.2;display:grid}.test-status-line strong{color:inherit;text-align:center;margin:0;font-size:15px;line-height:1}.test-status-line small{color:inherit;font-size:11px;font-weight:900;line-height:1.15}.test-status-line.total{color:#475569;background:#eef2f7}.test-status-line.finished,.test-state.finished{color:#287235;background:#eaf7ec}.test-status-line.partial,.test-state.partial{color:#8a5d09;background:#fff6df}.test-status-line.pending,.test-state.pending{color:var(--red);background:#fde9e7}.test-status-line.review,.test-state.review{color:var(--blue);background:#e8f1fb}.project-edit-form{grid-template-columns:1fr;gap:10px;padding:18px;display:grid}.project-edit-form label{background:var(--panel-soft);border:1px solid #e2eaf5;border-radius:8px;grid-template-columns:190px minmax(0,1fr);align-items:center;gap:12px;min-height:48px;padding:8px 10px;display:grid}.project-edit-form span{color:var(--foreground);font-size:13px;font-weight:800}.project-edit-form input{width:100%;min-height:38px;color:var(--foreground);background:#fff;border:1px solid #cbd8e8;border-radius:8px;padding:0 12px;font-size:13px}.edit-tests{gap:10px;padding:0 18px 18px;display:grid}.selected-project-overview{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:18px 18px 0;display:grid}.selected-project-overview div{background:var(--panel-soft);border:1px solid #e6edf5;border-radius:8px;gap:4px;padding:10px;display:grid}.selected-project-overview span{color:var(--muted);font-size:11px;font-weight:900}.selected-project-overview strong{color:var(--foreground);font-size:13px;line-height:1.25}.project-test-list{gap:8px;padding:18px;display:grid}.project-test-row{background:#fff;border:1px solid #e6edf5;border-radius:8px;grid-template-columns:minmax(0,1fr) 104px;align-items:center;gap:10px;padding:10px;display:grid}.project-test-row span{color:#334155;font-size:13px;font-weight:800;line-height:1.3}.test-state{text-align:center;border-radius:999px;place-items:center;min-height:28px;padding:0 8px;font-size:11px;font-weight:900;display:inline-grid}.section-subtitle{justify-content:space-between;align-items:center;gap:12px;padding-top:2px;display:flex}.section-subtitle strong{color:var(--foreground);font-size:14px}.section-subtitle span{color:var(--blue);font-size:12px;font-weight:900}.form-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:18px;display:grid}.form-grid label{background:var(--panel-soft);border:1px solid #e6edf5;border-radius:8px;gap:8px;padding:12px;display:grid}.form-grid span{color:var(--muted);font-size:12px;font-weight:900}.test-counts{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.count-chip{white-space:nowrap;border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.count-chip.available{color:#475569;background:#eef2f7}.count-chip.selected{color:var(--blue);background:#edf4fc}.test-selector{gap:8px;max-height:520px;padding:18px;display:grid;overflow:auto}.test-selector label{background:#f5f7fa;border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;padding:11px;display:grid}.test-selector label.selected{box-shadow:inset 3px 0 0 var(--blue);background:#edf4fc;border-color:#9fc0e8}.test-selector input{width:16px;min-height:16px;accent-color:var(--blue);margin-top:1px}.test-selector span{color:#64748b;font-size:13px;font-weight:800;line-height:1.35}.test-selector label.selected span{color:var(--blue)}.test-selector.compact{max-height:360px;padding:0}.action-row{flex-wrap:wrap;gap:10px;padding:0 18px 18px;display:flex}.inline-feedback{color:#2563eb;margin:-6px 18px 18px;font-size:13px;font-weight:800}.compact-list,.sync-list,.template-grid{gap:10px;padding:18px;display:grid}.compact-list button,.template-grid button{background:var(--panel-soft);width:100%;color:var(--foreground);text-align:left;border:1px solid #e6edf5;border-radius:8px;gap:4px;padding:14px;display:grid}.compact-list strong,.template-grid strong,.sync-list strong{color:var(--blue);font-size:14px}.compact-list span,.compact-list em,.template-grid span,.template-grid p,.sync-list span,.sync-list em,.note-block p{color:var(--muted);margin:0;font-size:13px;font-style:normal;line-height:1.4}.assignment-table{gap:6px;padding:18px;display:grid;overflow-x:auto}.assignment-grid{grid-template-columns:minmax(500px,1.1fr) minmax(340px,.9fr)}.assignment-project-list{gap:8px;padding:18px;display:grid}.assignment-project-item{background:var(--panel-soft);border:1px solid #e2e8f0;border-radius:8px;display:grid;overflow:hidden}.assignment-project-item.selected{box-shadow:inset 3px 0 0 var(--blue);background:#edf4fc;border-color:#9fc0e8}.assignment-project-item button{width:100%;min-height:46px;color:var(--foreground);text-align:left;background:0 0;border:0;grid-template-columns:minmax(150px,1fr) minmax(110px,.62fr) 78px 112px;align-items:center;gap:10px;padding:9px 10px;display:grid}.assignment-project-item:hover{background:#edf4fc;border-color:#9fc0e8}.assignment-project-list strong{color:var(--blue);font-size:14px;line-height:1.2}.assignment-project-list span,.assignment-project-list small{color:var(--muted);font-size:12px;font-weight:800;line-height:1.2}.assignment-project-list em{color:#475569;text-align:center;background:#fff;border-radius:999px;justify-self:end;place-items:center;max-width:112px;min-height:28px;padding:4px 8px;font-size:11px;font-style:normal;font-weight:900;line-height:1.1;display:inline-grid}.assignment-project-detail{gap:8px;padding:0 10px 10px;display:grid}.assignment-project-detail label{background:#fff;border:1px solid #dbe8f7;border-radius:8px;grid-template-columns:auto 154px;justify-content:start;align-items:center;gap:12px;width:fit-content;max-width:100%;padding:7px 9px;display:grid}.assignment-project-detail label span{color:var(--muted);font-size:11px;font-weight:900}.assignment-project-detail input{width:154px;min-height:30px;padding:4px 7px;font-size:11px;font-weight:800}.assignment-date-box{padding:18px 18px 0}.assignment-date-box label{background:var(--panel-soft);border:1px solid #e6edf5;border-radius:8px;gap:8px;padding:12px;display:grid}.assignment-date-box span{color:var(--muted);font-size:12px;font-weight:900}.assignment-form{grid-template-columns:minmax(0,1fr) 220px;gap:12px;padding:18px 18px 0;display:grid}.assignment-form label,.add-engineer label{gap:8px;display:grid}.assignment-form span,.add-engineer span{color:var(--muted);font-size:12px;font-weight:900}.assignment-project-card{background:#edf4fc;border:1px solid #c5d9f1;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;margin:18px 18px 0;padding:14px;display:grid}.assignment-project-card strong{color:var(--blue);margin-bottom:3px;font-size:16px;display:block}.assignment-project-card span,.assignment-project-card p{color:var(--muted);margin:0;font-size:13px;line-height:1.35}.assignment-project-card em{color:#475569;white-space:nowrap;background:#fff;border-radius:999px;align-self:start;padding:5px 8px;font-size:12px;font-style:normal;font-weight:900}.assignment-project-card p{grid-column:1/-1}.assignment-tests{gap:8px;padding:18px;display:grid}.assignment-tests.compact{gap:6px;max-height:260px;padding:0;overflow:auto}.assignment-project-detail .project-test-row{grid-template-columns:minmax(0,1fr) 92px;gap:8px;min-height:40px;padding:7px 8px}.assignment-project-detail .project-test-row span{font-size:12px;line-height:1.25}.assignment-project-detail .test-state{min-height:24px;padding:0 7px;font-size:10px}.engineer-selector{gap:8px;max-height:390px;padding:18px;display:grid;overflow:auto}.engineer-selector label{background:#f5f7fa;border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;padding:11px;display:grid}.engineer-selector label.selected{box-shadow:inset 3px 0 0 var(--blue);background:#edf4fc;border-color:#9fc0e8}.engineer-selector input{width:16px;min-height:16px;accent-color:var(--blue);margin-top:2px}.engineer-selector span{gap:3px;display:grid}.engineer-selector strong{color:var(--foreground);font-size:13px}.engineer-selector small,.engineer-selector em{color:var(--muted);font-size:12px;font-style:normal;font-weight:800;line-height:1.25}.engineer-selector label.selected strong{color:var(--blue)}.add-engineer{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;padding:0 18px 18px;display:grid}.assignment-summary{grid-template-columns:minmax(220px,1fr) repeat(3,minmax(120px,.35fr));gap:10px;padding:18px 18px 0;display:grid}.assignment-summary div{background:var(--panel-soft);border:1px solid #e6edf5;border-radius:8px;gap:4px;padding:12px;display:grid}.assignment-summary span{color:var(--muted);font-size:12px;font-weight:900}.assignment-summary strong{color:var(--foreground);font-size:15px;line-height:1.25}.assigned-engineers-list{flex-wrap:wrap;gap:8px;padding:14px 18px 18px;display:flex}.assigned-engineers-list span{min-height:30px;color:var(--blue);background:#edf4fc;border:1px solid #c5d9f1;border-radius:999px;align-items:center;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.assigned-engineers-list p{color:var(--red);margin:0;font-size:13px;font-weight:800}.publication-list{gap:8px;padding:18px;display:grid}.publication-list div{background:var(--panel-soft);border:1px solid #e6edf5;border-radius:8px;grid-template-columns:minmax(170px,1fr) minmax(140px,.75fr) minmax(150px,.8fr) 112px minmax(130px,auto);align-items:center;gap:8px;padding:10px;display:grid}.publication-list div.active{background:#edf4fc;border-color:#9fc0e8}.publication-list strong{color:var(--blue);font-size:13px;line-height:1.25}.publication-list span{color:#475569;font-size:11px;font-weight:900;line-height:1.2}.publication-list em{color:var(--muted);text-align:right;justify-self:end;font-size:12px;font-style:normal;font-weight:900;line-height:1.25}.assignment-row{background:#fff;border:1px solid #e6edf5;border-radius:8px;grid-template-columns:minmax(220px,1.2fr) minmax(170px,.9fr) minmax(160px,.8fr) 130px;align-items:center;gap:10px;min-width:720px;padding:12px;font-size:13px;display:grid}.assignment-head{background:var(--blue);color:#fff;font-weight:900}.assignment-row strong{color:var(--blue)}.assignment-head strong{color:#fff}.assignment-row em{color:#8a5d09;font-style:normal;font-weight:900}.note-block{padding:18px}.sync-list div{background:var(--panel-soft);border:1px solid #e6edf5;border-radius:8px;grid-template-columns:minmax(140px,.45fr) minmax(220px,1fr) auto;align-items:center;gap:12px;padding:14px;display:grid}.template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media (width<=1100px){.app-shell,.app-shell.sidebar-collapsed{grid-template-columns:1fr}.sidebar{height:auto;position:static}.sidebar-collapsed .brand-block{justify-content:space-between}.sidebar-collapsed .brand-block img{opacity:1;width:min(210px,100%)}.sidebar-collapsed .side-nav,.sidebar-collapsed .sync-card{display:none}.side-nav{grid-template-columns:1fr}.sync-card{margin-top:0}.content-grid,.module-grid,.project-management,.test-layout,.template-workflow{grid-template-columns:1fr}.common-data,.assignment-summary,.approval-summary,.approval-steps,.field-summary-strip,.form-grid,.project-summary-grid,.selected-project-overview,.export-detail,.export-documents,.photo-annex-grid,.template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.template-catalog-panel,.template-editor-panel,.template-history-panel,.template-create-panel{grid-area:auto/1}}@media (width<=720px){.workspace,.sidebar{padding:16px}.topbar,.user-strip,.panel-title,.panel-actions{flex-direction:column;align-items:stretch}.panel-actions{justify-content:stretch}.register-actions,.modal-title,.modal-actions{flex-direction:column;align-items:stretch}.modal-actions button{justify-content:center;width:100%}.operation-modal{padding:34px 20px 24px}.operation-modal p{font-size:16px}.operation-actions{gap:12px}.danger-confirm-action,.success-confirm-action{flex:1;min-width:0}.signature-modal .signature-pad canvas{height:190px}.test-counts{justify-content:flex-start}.panel-actions button,.panel-actions .pill,.register-actions button{justify-content:center;width:100%}.validation-row{grid-template-columns:1fr;align-items:stretch}.compact-form-list label{grid-template-columns:1fr;gap:6px}.validation-actions{grid-template-columns:repeat(3,32px);justify-content:start}.report-annex-card,.summary-strip,.field-summary-strip,.assignment-form,.assignment-project-list button,.assignment-project-detail label,.field-project-list,.field-project-list button,.field-test-list button,.assignment-summary,.approval-summary,.approval-steps,.add-engineer,.common-data,.form-grid,.project-summary-grid,.selected-project-overview,.project-edit-form,.attachment-grid,.export-detail,.export-documents,.report-annex-list,.photo-annex-grid,.template-grid,.template-current-grid,.template-upload-grid,.template-version-row,.form-row.compact,.user-admin-layout,.user-security-grid,.user-row,.side-nav,.protocol-row,.project-card,.project-card-main,.approval-card,.publication-list div,.project-test-row{grid-template-columns:1fr}.assignment-project-list em,.field-project-list em,.user-row em,.publication-list em{justify-self:start}.project-test-summary{grid-area:auto/1}.detail-list div{grid-template-columns:1fr;gap:4px}.sync-list div{grid-template-columns:1fr}}.registration-form{display:contents}.offline-prepare,.offline-status,.storage-notice,.annex-open,.export-annex-list button,.attachment-preview a{align-items:center;gap:8px;display:flex}.offline-prepare{font-size:13px}.offline-status{color:#526478;flex-wrap:wrap;padding:10px 0 18px;font-size:13px}.storage-notice{color:#735000;background:#fff8e9;border:1px solid #d99838;border-radius:6px;margin-bottom:16px;padding:12px 16px}.storage-notice span{overflow-wrap:anywhere;flex:1;min-width:0}.storage-notice svg,.offline-status svg{flex:none}.annex-open{color:#245fa4;background:#edf4fc;border:1px solid #c8d8ed;border-radius:6px;justify-content:center;width:36px;height:36px;padding:0}.report-annex-card:has(.annex-open){grid-template-columns:80px minmax(0,1fr) minmax(120px,190px) 36px auto}.file-picker-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.attachment-preview{background:#fff;border-radius:8px;flex-direction:column;gap:14px;width:min(960px,94vw);max-height:90dvh;padding:20px;display:flex}.attachment-preview h2{overflow-wrap:anywhere;font-size:18px}.attachment-preview img{object-fit:contain;min-height:0;max-height:65dvh}.attachment-preview iframe{border:1px solid #c8d8ed;width:100%;height:65dvh}.saved-signature{flex-direction:column;gap:6px;font-size:13px;display:flex}.saved-signature img{object-fit:contain;width:160px;height:70px}.conflict-modal .modal-actions{flex-wrap:wrap}.export-annex-list{align-content:start;gap:12px;padding:16px;display:grid}.spinning{animation:1s linear infinite offline-spin}@keyframes offline-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinning{animation:none}}@media (width<=700px){.report-annex-card:has(.annex-open){grid-template-columns:minmax(0,1fr) 36px auto}.report-annex-number{grid-column:1/-1}.report-annex-card:has(.annex-open)>label:not(.upload-box){grid-column:1/-1}.offline-prepare{max-width:190px}}
