:root{--color-primary: #076B2C;--color-primary-dark: #055A22;--color-accent: #D7262D;--color-text-primary: #111827;--color-text-muted: #4B5563;--color-border: #E2E8F0;--color-background: #F8FAFC;--color-surface: #FFFFFF;--color-steel-blue: #6F8F9A;--color-steel-blue-dark:#5E7C86;--color-success: #16A34A;--color-warning: #F59E0B;--color-error: #DC2626;--color-info: #2563EB;--font-family: "Inter", system-ui, -apple-system, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.25rem;--sp-6: 1.5rem;--sp-8: 2rem;--sp-10: 2.5rem;--sp-12: 3rem;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-card: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--topbar-height: 64px;--stepper-height: 72px;--content-max-w: 960px;--sidebar-w: 240px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:1.25;color:var(--color-text-primary)}.form-group{display:flex;flex-direction:column;gap:var(--sp-2)}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.form-label.required:after{content:" *";color:var(--color-accent)}.form-input,.form-textarea,.form-select{width:100%;padding:.5625rem var(--sp-4);font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color .15s ease,box-shadow .15s ease;outline:none}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #076b2c2e}.form-input--error,.form-textarea--error{border-color:var(--color-error);background-color:#dc262608}.form-input--error:focus,.form-textarea--error:focus{border-color:var(--color-error);box-shadow:0 0 0 2px #dc262626}.form-error-msg{font-size:.8125rem;color:var(--color-error);margin-top:4px;line-height:1.3}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-muted);opacity:.7}.form-textarea{resize:vertical;min-height:96px}.checkbox-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) 0;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-row input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:16px;height:16px;flex-shrink:0;border-radius:var(--radius-sm);background-color:var(--color-surface);border:1.5px solid var(--color-border);transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease;cursor:pointer;outline:none}.checkbox-row:hover input[type=checkbox]:not(:checked){border-color:#076b2c80}.checkbox-row input[type=checkbox]:checked{background-color:var(--color-primary);border-color:var(--color-primary);background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 8'><polyline points='1,4 3.5,6.5 9,1' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:center;background-size:10px 8px}.checkbox-row input[type=checkbox]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.checkbox-row span{font-size:var(--font-size-sm);color:var(--color-text-primary);line-height:1.4}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);padding:var(--sp-6)}.section-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary);text-transform:uppercase;letter-spacing:.4px;padding-bottom:var(--sp-3);border-bottom:1px solid rgba(7,107,44,.3);margin-bottom:var(--sp-5)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-5);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-lg);border:1px solid transparent;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,opacity .15s ease;text-decoration:none;white-space:nowrap;line-height:1.5}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary);font-weight:var(--font-weight-semibold)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-dark);border-color:var(--color-primary-dark);box-shadow:0 4px 12px #076b2c59}.btn-secondary{background-color:transparent;color:var(--color-primary);border-color:var(--color-primary)}.btn-secondary:hover:not(:disabled){background-color:#076b2c0f}.btn-ghost{background-color:transparent;color:var(--color-text-muted);border-color:transparent}.btn-ghost:hover:not(:disabled){background-color:#0000000d}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5) var(--sp-6)}@media(max-width:640px){.form-grid-2{grid-template-columns:1fr}}.step-validation-hint{display:flex;align-items:flex-start;gap:var(--sp-2);background-color:#dc26260d;border-left:3px solid var(--color-error);padding:var(--sp-3) var(--sp-4);border-radius:0 var(--radius-md) var(--radius-md) 0;font-size:var(--font-size-xs);color:var(--color-error);line-height:1.5}.step-validation-hint:before{content:"!";display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;min-width:15px;border-radius:50%;background-color:var(--color-error);color:#fff;font-size:10px;font-weight:var(--font-weight-bold);margin-top:1px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.stepper{background-color:var(--color-surface);border-bottom:1px solid var(--color-border);padding:0 var(--sp-8)}.stepper__list{display:flex;align-items:center;list-style:none;height:var(--stepper-height);max-width:var(--content-max-w);margin:0 auto;gap:0}.stepper__item{display:flex;align-items:center;flex:1;position:relative}.stepper__connector{flex:1;height:2px;background-color:var(--color-border);transition:background-color .25s ease;min-width:var(--sp-4)}.stepper__item--completed .stepper__connector,.stepper__item--active .stepper__connector{background-color:var(--color-primary)}.stepper__btn{display:flex;align-items:center;gap:var(--sp-2);background:none;border:none;cursor:pointer;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);transition:background-color .15s ease;white-space:nowrap}.stepper__btn:hover:not(:disabled){background-color:#0000000a}.stepper__btn:disabled{cursor:default}.stepper__circle{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:2px solid var(--color-border);background-color:var(--color-surface);flex-shrink:0;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease}.stepper__item--active .stepper__circle{border-color:var(--color-primary-dark);background-color:var(--color-primary-dark);box-shadow:0 0 0 3px #076b2c38}.stepper__item--completed .stepper__circle{border-color:var(--color-primary);background-color:var(--color-primary)}.stepper__number{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);line-height:1}.stepper__item--active .stepper__number{color:#fff}.stepper__check{width:12px;height:12px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.stepper__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);transition:color .2s ease}.stepper__item--active .stepper__label{color:var(--color-primary-dark);font-weight:var(--font-weight-semibold)}.stepper__item--completed .stepper__label{color:#076b2ca6;font-weight:var(--font-weight-medium)}@media(max-width:600px){.stepper__label{display:none}.stepper__btn{padding:var(--sp-2)}}.container{max-width:var(--content-max-w);margin:0 auto;width:100%}.topbar{height:auto;background-color:var(--color-primary);box-shadow:var(--shadow-md);flex-shrink:0}.topbar__inner{display:flex;flex-direction:column;gap:5px;padding:10px var(--sp-8)}.topbar__row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);width:100%}.topbar__brand-row{display:flex;align-items:center;gap:var(--sp-3);min-width:0}.topbar__brand-name{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:#fff;letter-spacing:.08em;white-space:nowrap}.topbar__brand-logo{height:32px;width:auto;display:block;object-fit:contain;filter:drop-shadow(0 1px 3px rgba(0,0,0,.35));flex-shrink:0}.topbar__brand-divider{width:1px;height:18px;background-color:#ffffff59;flex-shrink:0}.topbar__brand-subtitle{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:#ffffffd9;letter-spacing:.02em;white-space:nowrap}.topbar__controls{display:flex;align-items:center;gap:var(--sp-3);flex-shrink:0}.topbar__row--secondary{align-items:baseline}.topbar__brand-tagline{font-size:12px;color:#ffffffa6;line-height:1.2;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.topbar__status{display:flex;align-items:center;gap:var(--sp-4);flex-shrink:0}.topbar__step-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:#ffffffe6;background-color:#ffffff26;padding:var(--sp-1) var(--sp-3);border-radius:var(--radius-lg);letter-spacing:.04em;white-space:nowrap}.topbar__demo-badge{font-size:11px;font-weight:var(--font-weight-semibold);color:#fff;background:#ffffff26;border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:3px 9px;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap;line-height:1}.topbar__autosave{display:flex;align-items:center;gap:5px;font-size:11px;color:#ffffffd9;white-space:nowrap}.topbar__autosave-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;flex-shrink:0}.topbar__timestamp{font-size:11px;color:#fff9;white-space:nowrap}.lang-switcher{display:flex;align-items:center;border:1px solid rgba(255,255,255,.35);border-radius:var(--radius-md);overflow:hidden}.lang-switcher__btn{background:transparent;border:none;color:#ffffffbf;font-family:var(--font-family);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.06em;padding:3px var(--sp-3);cursor:pointer;transition:background-color .15s ease,color .15s ease;line-height:1.6}.lang-switcher__btn+.lang-switcher__btn{border-left:1px solid rgba(255,255,255,.35)}.lang-switcher__btn:hover:not(:disabled){background-color:#ffffff26;color:#fff}.lang-switcher__btn--active{background-color:#ffffff38;color:#fff;cursor:default}@media(max-width:1024px){.topbar__timestamp{display:none}}@media(max-width:768px){.topbar__brand-subtitle,.topbar__row--secondary{display:none}}@media(max-width:480px){.topbar__step-badge{display:none}}.app-layout{display:flex;flex-direction:column;min-height:100vh;background-color:var(--color-background)}.app-main{flex:1;overflow-y:auto;padding:var(--sp-10) var(--sp-4)}.app-footer{background-color:var(--color-surface);border-top:1px solid var(--color-border);box-shadow:0 -1px 6px #0000000d;flex-shrink:0}.app-footer__inner{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-8)}.site-footer{padding:24px 0;background:transparent;border-top:1px solid rgba(0,0,0,.05);text-align:center;font-size:12px;color:#6b7280;line-height:1.8;flex-shrink:0}@media(max-width:768px){.app-main{padding:var(--sp-5) var(--sp-3)}.app-footer__inner{padding:var(--sp-3) var(--sp-4)}}.page-header{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-6)}.page-header__title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.page-header__desc{font-size:var(--font-size-sm);color:var(--color-text-muted)}.project-step{display:flex;flex-direction:column;gap:var(--sp-5)}.project-step__card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);padding-bottom:var(--sp-3);border-bottom:1px solid rgba(7,107,44,.3);margin-bottom:var(--sp-5)}.project-step__card-header .section-title{border-bottom:none;margin-bottom:0;padding-bottom:0;flex:1}.project-step__fill-demo{font-size:var(--font-size-xs);padding:var(--sp-1) var(--sp-3);flex-shrink:0;align-self:flex-start;white-space:nowrap}.prep-step{display:flex;flex-direction:column;gap:var(--sp-5)}.check-group{display:flex;flex-direction:column;gap:var(--sp-3)}.check-group--inline{flex-direction:row;flex-wrap:wrap;gap:var(--sp-4) var(--sp-8)}.prep-step__blasting-field{margin-top:var(--sp-5);max-width:360px}.prep-step__eval-row{display:flex;gap:var(--sp-8);flex-wrap:wrap;margin-bottom:var(--sp-5)}.prep-step__eval-label{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}.prep-step__eval-label--ok{color:var(--color-success)}.prep-step__eval-label--fail{color:var(--color-error)}.prep-step__ncr{margin-bottom:var(--sp-5)}.prep-step__remarks{margin-top:0}@media(max-width:640px){.check-group--inline{flex-direction:column}}.xcut-step{display:flex;flex-direction:column;gap:var(--sp-5)}.xcut-step__upload-area{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap}.xcut-step__upload-btn{cursor:pointer}.xcut-step__upload-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.xcut-step__gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--sp-3);margin-top:var(--sp-5)}.xcut-step__thumb{position:relative;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border);aspect-ratio:1;background-color:var(--color-background)}.xcut-step__thumb img{width:100%;height:100%;object-fit:cover;display:block}.xcut-step__thumb-remove{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background-color:#0000008c;color:#fff;border:none;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background-color .15s}.xcut-step__thumb-remove:hover{background-color:var(--color-accent)}.xcut-step__reference{display:flex;justify-content:center}.xcut-step__reference-img{width:100%;max-width:800px;height:auto;border-radius:var(--radius-md);display:block}.export-step{display:flex;flex-direction:column;gap:var(--sp-5)}.summary-section__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-5);border-bottom:1px solid rgba(7,107,44,.22);padding-bottom:var(--sp-3)}.summary-section__header .section-title{border-bottom:none;margin-bottom:0;padding-bottom:0}.summary-section__edit-btn{font-size:var(--font-size-xs);color:var(--color-primary);padding:var(--sp-1) var(--sp-3);flex-shrink:0}.summary-grid{display:flex;flex-direction:column;gap:0}.summary-row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-4);padding:var(--sp-2) 0;border-bottom:1px solid var(--color-background)}.summary-row:last-child{border-bottom:none}.summary-row__label{font-size:var(--font-size-sm);color:var(--color-text-muted);flex-shrink:0;min-width:200px}.summary-row__value{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:var(--font-weight-medium);text-align:right;word-break:break-word}.export-step__gallery{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-5)}.export-step__thumb{width:100px;height:100px;object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--color-border)}.export-step__action-row{display:flex;gap:var(--sp-6);flex-wrap:wrap;margin-bottom:var(--sp-5)}.export-step__action-item{display:flex;flex-direction:column;gap:var(--sp-2)}.export-step__action-btn{padding:var(--sp-3) var(--sp-6);font-size:var(--font-size-base)}.export-step__action-desc{font-size:var(--font-size-xs);color:var(--color-text-muted);max-width:260px}.export-step__pdf-error{font-size:var(--font-size-xs);color:var(--color-error);max-width:260px;line-height:1.4}.export-step__divider{border:none;border-top:1px solid var(--color-border);margin:var(--sp-4) 0}.export-step__reset-btn{color:var(--color-error);font-size:var(--font-size-xs);padding:var(--sp-1) 0}.export-step__reset-btn:hover{background-color:transparent;text-decoration:underline}@media(max-width:640px){.summary-row{flex-direction:column;gap:var(--sp-1)}.summary-row__label{min-width:unset}.summary-row__value{text-align:left}.export-step__action-row{flex-direction:column}}
