*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh}.container{background:#fff;box-shadow:0 20px 60px #0000004d;padding:40px 50px}h1{color:#2d3748;margin-bottom:10px;font-size:2rem}h2{color:#4a5568;margin-bottom:20px;font-size:1.5rem;border-bottom:2px solid #e2e8f0;padding-bottom:10px}.form-group{margin:0 3px 15px}label{display:block;margin-bottom:6px;color:#4a5568;font-weight:600;font-size:.76rem;line-height:1.35}input,select{width:100%;padding:8px 12px;border:1px solid #e2e8f0;border-radius:6px;font-size:.9rem;transition:border-color .3s;height:38px}input[type=checkbox]{width:auto;height:auto;margin-right:8px;cursor:pointer;accent-color:#4299e1}input:focus,select:focus{outline:none;border-color:#667eea}input.error,select.error{border-color:#e53e3e}.field-auto-matched label{color:#a0aec0}.field-auto-matched input[type=number],.field-auto-matched select{background-color:#edf2f7;color:#718096;border-color:#e2e8f0;cursor:not-allowed}.error-message{color:#e53e3e;font-size:.85rem;margin-top:5px}.btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:14px 28px;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;width:100%}.btn:hover{transform:translateY(-2px);box-shadow:0 10px 20px #667eea66}.btn:active{transform:translateY(0)}.btn-export{background:#3182ce;color:#fff}.btn-export:hover{background:#2b6cb0;box-shadow:0 10px 20px #3182ce66}.btn-export:disabled{background:#a0aec0}.btn:disabled{background:#a0aec0;cursor:not-allowed;transform:none;opacity:.6}.btn.disabled{background:#a0aec0;cursor:not-allowed;opacity:.6}.btn-reset{background:#fc8181;color:#fff;border:none;padding:14px 28px;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s}.btn-reset:hover{background:#f56565;transform:translateY(-2px);box-shadow:0 10px 20px #f5656559}.btn-reset:active{transform:translateY(0)}.results{margin-top:30px}.result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-top:20px}.result-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:20px;border-radius:8px;text-align:center}.result-label{font-size:.74rem;opacity:.9;margin-bottom:8px;text-transform:uppercase;letter-spacing:1px}.result-value{font-size:1.8rem;font-weight:700}.result-unit{font-size:1rem;opacity:.8;margin-left:5px}.section-list{margin-top:20px}.section-item{background:#f7fafc;border:1px solid #e2e8f0;border-radius:6px;padding:12px;margin-bottom:8px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.section-title{font-weight:600;color:#2d3748}.section-status{padding:4px 12px;border-radius:12px;font-size:.75rem;font-weight:600}.status-filled{background:#c6f6d5;color:#22543d}.status-partial{background:#fed7d7;color:#742a2a}.status-empty{background:#e2e8f0;color:#4a5568}.section-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;font-size:.9rem;color:#4a5568}.detail-item{display:flex;justify-content:space-between}.loading{text-align:center;padding:40px;color:#667eea;font-size:1.1rem}.alert{padding:15px;border-radius:6px;margin-bottom:20px}.alert-error{background:#fed7d7;color:#742a2a;border:1px solid #fc8181}.alert-success{background:#c6f6d5;color:#22543d;border:1px solid #68d391}.section-form{background:#f7fafc;border:1px dashed #cbd5e0;border-radius:8px;padding:15px;margin-bottom:20px;overflow:visible}.row{display:flex;flex-wrap:wrap;margin:0 -5px;gap:12px;align-items:flex-start}.row-single{display:flex;flex-wrap:nowrap;gap:12px;align-items:flex-start;width:100%;overflow-x:auto}.fluid-properties-row{width:100%;box-sizing:border-box;margin-top:8px}.field-hint,.manhole-field-hint{color:#718096;font-size:.65rem;line-height:1.2;display:block;margin-top:2px}.left-panel .fluid-properties-row .form-group>div[style*=flex] select.fluid-prop-density-unit{width:72px!important;min-width:68px!important}.left-panel .fluid-properties-row .form-group>div[style*=flex] select.fluid-prop-volume-unit{width:56px!important;min-width:52px!important}.col-12{flex:0 0 100%;max-width:100%;padding:0 10px;overflow:visible;width:100%}.col-8{flex:0 0 66.666667%;max-width:66.666667%;padding:0 10px}.col-4{flex:0 0 33.333333%;max-width:33.333333%;padding:0 10px}@media (max-width: 992px){.col-8,.col-4{flex:0 0 100%;max-width:100%}}.section-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-form-header__title{color:#2d3748;font-size:1.2rem;margin:0}.left-panel .shaft-card .section-form-header__title{font-size:.95rem}.left-panel .shaft-section-card .section-form-header__title{color:#4a5568;font-size:.9rem}.section-form-header--toolbar{flex-wrap:wrap;justify-content:flex-start;gap:8px 10px}.section-form-header--toolbar .section-header-actions{margin-left:auto;flex-shrink:0}:root{--form-btn-padding: 5px 12px;--form-btn-font-size: .8rem;--form-btn-min-height: 28px;--form-btn-radius: 5px}.btn-remove,.btn-add-manhole,.btn-add-section{padding:var(--form-btn-padding);border-radius:var(--form-btn-radius);font-size:var(--form-btn-font-size);font-weight:500;line-height:1.2;min-height:var(--form-btn-min-height);box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.btn-remove{background:#e53e3e;color:#fff;border:none;cursor:pointer;transition:background .2s ease}.btn-remove:hover{background:#c53030}.section-header-actions{margin-left:auto;display:flex;gap:6px;align-items:center;flex-shrink:0}.section-header-actions .btn-add-manhole:hover:not(:disabled){transform:none}.btn-add-section{background:#48bb78;color:#fff;border:none;cursor:pointer;margin-top:10px}.btn-add-section:hover{background:#38a169}.left-panel .row-grid,.row-grid.row-grid--plate{display:grid;grid-template-columns:repeat(auto-fill,minmax(154px,1fr));gap:8px 12px;align-items:start;padding-bottom:8px;width:100%;margin:0;overflow:visible}.left-panel .row-grid .form-group,.row-grid.row-grid--plate .form-group{flex:unset;min-width:0;max-width:none;width:100%;margin:0 0 4px;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}.left-panel .row-grid.row-grid--plate:has(>.form-group--shape-type),.row-grid.row-grid--plate:has(>.form-group--shape-type){display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px 10px}.left-panel .row-grid.row-grid--plate:has(>.form-group--shape-type) .form-group--shape-type,.row-grid.row-grid--plate:has(>.form-group--shape-type) .form-group--shape-type{flex:0 0 auto;width:auto;min-width:0;max-width:6.75rem}.left-panel .row-grid.row-grid--plate:has(>.form-group--shape-type)>.form-group,.row-grid.row-grid--plate:has(>.form-group--shape-type)>.form-group{flex:0 0 auto;width:auto}.left-panel .row-grid.row-grid--plate:has(>.form-group--shape-type) .form-group:not(.form-group--shape-type):not(.form-group--num-holes),.row-grid.row-grid--plate:has(>.form-group--shape-type) .form-group:not(.form-group--shape-type):not(.form-group--num-holes){flex:0 0 auto;width:8.5rem;max-width:8.5rem;min-width:8rem}.left-panel .row-grid.row-grid--plate .form-group--num-holes,.row-grid.row-grid--plate .form-group--num-holes{flex:0 0 auto;width:5.5rem;max-width:5.5rem;min-width:5rem}.left-panel .row-grid.row-grid--plate .form-group--num-holes select,.row-grid.row-grid--plate .form-group--num-holes select{width:100%!important;max-width:100%!important}.left-panel .row-grid .form-group label,.row-grid.row-grid--plate .form-group label{font-size:.66rem!important;margin-bottom:3px;line-height:1.2;white-space:normal!important;overflow-wrap:anywhere;word-break:break-word}.left-panel .row-grid .form-group input[type=number],.left-panel .row-grid .form-group select,.row-grid.row-grid--plate .form-group input[type=number],.row-grid.row-grid--plate .form-group select{padding:4px 6px!important;font-size:.78rem!important;min-height:28px;height:28px;box-sizing:border-box;width:100%;max-width:100%}.left-panel .row-grid .form-group .error-message,.row-grid.row-grid--plate .form-group .error-message{max-width:100%;font-size:.65rem;margin-top:2px}.left-panel .row-grid .form-group>div[style*=flex],.row-grid.row-grid--plate .form-group>div[style*=flex]{display:flex!important;gap:6px!important;align-items:center!important;min-width:0}.left-panel .row-grid .form-group>div[style*=flex] input[type=number],.row-grid.row-grid--plate .form-group input[type=number][style*=flex]{flex:1 1 0!important;min-width:0!important;width:auto!important}.left-panel .row-grid .form-group>div[style*=flex] select,.row-grid.row-grid--plate .form-group select[style*=flex-shrink]{flex-shrink:0!important;width:52px!important;min-width:48px!important}.left-panel .row-grid .form-group select,.row-grid.row-grid--plate .form-group select{padding-left:4px!important;padding-right:3px!important}.manholes-section{background:#fafafa;border-radius:8px;padding:16px}.manhole-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:14px;transition:all .2s ease}.manhole-card:hover{border-color:#cbd5e0;box-shadow:0 2px 8px #00000014}.manhole-card__toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.manhole-card__toolbar .btn-remove{flex-shrink:0}.manholes-hint{color:#718096;font-size:.7rem;line-height:1.3;display:block;margin-bottom:8px}.manhole-field-hint{color:#718096;font-size:.65rem;line-height:1.2;display:block;margin-top:2px}.manholes-list{display:grid;gap:8px}.left-panel .manholes-section .manhole-field-grid,.left-panel .manholes-section .row-grid.row-grid--plate{margin-top:4px}.left-panel .manholes-section .manhole-field-grid .form-group,.left-panel .manholes-section .manhole-field-grid.row-grid--plate .form-group{margin-bottom:0}.btn-add-manhole{background:#4299e1;color:#fff;border:none;cursor:pointer;transition:all .2s ease}.btn-add-manhole:hover:not(:disabled){background:#3182ce;transform:translateY(-1px);box-shadow:0 4px 8px #4299e14d}.btn-add-manhole:disabled{opacity:.55;cursor:not-allowed}.left-panel .section-form{padding:12px;margin-bottom:14px}.left-panel .section-form-header{margin-bottom:8px}.left-panel .form-group{margin:0 2px 10px}.left-panel label{margin-bottom:4px;font-size:.72rem!important;line-height:1.25}.left-panel input,.left-panel select{height:34px;font-size:.84rem;padding:6px 8px}.left-panel .row{gap:10px}.left-panel .row-grid{gap:8px 10px;grid-template-columns:repeat(auto-fill,minmax(138px,1fr))}.left-panel .row-grid.row-grid--plate:has(>.form-group--shape-type) .form-group:not(.form-group--shape-type):not(.form-group--num-holes){width:8.25rem;max-width:8.25rem;min-width:7.75rem}.left-panel .row-grid.row-grid--plate .form-group--num-holes{width:7.25rem;max-width:7.25rem;min-width:6.4rem}.left-panel .row-grid.row-grid--plate:has(>.form-group--shape-type) .form-group--shape-type{max-width:6.25rem}.left-panel .row-grid.row-grid--plate:has(>.form-group--shape-type) .form-group:not(.form-group--shape-type)>div[style*=flex] input[type=number],.row-grid.row-grid--plate:has(>.form-group--shape-type) .form-group:not(.form-group--shape-type)>div[style*=flex] input[type=number]{flex:0 0 4.5rem!important;width:4.5rem!important;max-width:4.5rem!important;min-width:4.5rem!important}.left-panel .row-grid.row-grid--plate:has(>.form-group--shape-type) .form-group:not(.form-group--shape-type)>div[style*=flex] select[style*=flex-shrink],.row-grid.row-grid--plate:has(>.form-group--shape-type) .form-group:not(.form-group--shape-type)>div[style*=flex] select[style*=flex-shrink]{width:2.75rem!important;min-width:2.5rem!important}.left-panel .row-grid .form-group label{font-size:.65rem!important;margin-bottom:2px}.left-panel .row-grid .form-group input[type=number],.left-panel .row-grid .form-group select{min-height:30px!important;height:30px!important;font-size:.76rem!important}.left-panel .manholes-section{padding:9px!important;margin-top:10px!important}.left-panel .manhole-card{padding:10px!important}.left-panel .manholes-section .manhole-card input[type=number],.left-panel .manholes-section .manhole-card select{min-height:30px!important;height:30px!important;padding:4px 6px!important;font-size:.76rem!important;border:1px solid #e2e8f0;border-radius:6px;box-sizing:border-box}.left-panel .manholes-section .manhole-card label{font-size:.65rem!important;margin-bottom:2px;font-weight:600;color:#4a5568}.left-panel .manholes-section .manhole-card .form-group>div[style*=flex]{display:flex!important;gap:6px!important;align-items:center!important;min-width:0}.left-panel .manholes-section .manhole-card .form-group>div[style*=flex] input[type=number]{flex:1 1 0!important;min-width:0!important;width:auto!important}.left-panel .manholes-section .manhole-card .form-group>div[style*=flex] select{flex-shrink:0!important;width:52px!important;min-width:48px!important;padding-left:4px!important;padding-right:3px!important}.left-panel .manholes-section .manhole-card .form-group .error-message{font-size:.65rem;margin-top:2px}.left-panel .manholes-section-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.left-panel .manholes-section-header__title{font-weight:600;color:#2d3748;margin:0;font-size:.8rem}.left-panel .manholes-section-header__badge{background:#4299e1;color:#fff;padding:2px 6px;border-radius:12px;font-size:.7rem;font-weight:600}.left-panel .manholes-section-header__toggle{background:none;border:none;color:#4299e1;cursor:pointer;font-size:.75rem;padding:0;text-decoration:underline}.left-panel .btn-add-section{margin-top:0}.left-panel .shaft-add-section-btn{margin-left:15px;margin-bottom:12px}.shafts-panel{width:100%;margin-bottom:20px;padding:15px 15px 20px;border-bottom:2px solid #4299e1;background:#f0f7ff;border-radius:8px;box-sizing:border-box}.shafts-panel__title{color:#2d3748;font-size:1.1rem;margin:0 0 10px}.shafts-panel__hint{color:#718096;margin:0 0 10px;font-size:.85rem;line-height:1.35}.left-panel .shaft-card{border:2px solid #4299e1;margin-bottom:15px;padding:10px;max-width:100%;box-sizing:border-box}.left-panel .shaft-section-card{margin-left:15px;margin-bottom:10px;border:1px solid #cbd5e0}.left-panel .shaft-card>.shaft-section-card:last-child{margin-bottom:0}.history-section{margin-top:30px}.history-item{transition:all .3s ease}.history-results-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.history-result-item{transition:transform .2s ease}.history-result-item:hover{transform:translateY(-2px)}.btn-action{box-shadow:0 2px 4px #0000001a}.btn-action:hover{box-shadow:0 4px 8px #00000026}@media (max-width: 1200px){.container{padding:28px 22px}}@media (max-width: 992px){.container{padding:22px 16px}h1{font-size:1.55rem}h2{font-size:1.25rem}}@media (max-width: 768px){body{overflow-x:hidden}#app{width:100%;max-width:100%;overflow-x:hidden}.container{padding:18px 12px;box-shadow:0 12px 40px #00000038}h1{font-size:1.3rem}h2{font-size:1.1rem}.btn,.btn-reset{width:auto;max-width:100%}.result-grid{grid-template-columns:1fr}.row-single{-webkit-overflow-scrolling:touch}.section-form{overflow-x:auto;-webkit-overflow-scrolling:touch}.left-panel .section-form-header--toolbar{display:grid!important;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;justify-content:stretch!important;gap:6px 8px!important}.left-panel .section-form-header--toolbar .section-form-header__title,.left-panel .section-form-header--toolbar>h3,.left-panel .section-form-header--toolbar>h5,.left-panel .section-form-header--toolbar>h6{grid-column:1;grid-row:1;flex:unset!important;width:auto!important;min-width:0;margin:0!important;font-size:1.05rem!important}.left-panel .shaft-card .section-form-header--toolbar .section-form-header__title{font-size:.92rem!important}.left-panel .shaft-section-card .section-form-header--toolbar .section-form-header__title{font-size:.88rem!important}.left-panel .section-form-header--toolbar .section-header-actions{grid-column:2;grid-row:1;margin-left:0!important;justify-self:end;align-self:center;flex:0 0 auto!important;width:auto!important;flex-wrap:nowrap!important;justify-content:flex-end!important;gap:6px}.left-panel .section-form-header--toolbar>label{grid-column:1 / -1;grid-row:2;max-width:100%}.left-panel .row-grid.row-grid--plate:has(>.form-group--shape-type){gap:8px 8px}.left-panel .section-form{padding:8px;margin-bottom:10px}.left-panel .shafts-panel{padding:8px 8px 10px;margin-bottom:12px}.left-panel .shafts-panel__title{font-size:1rem;margin-bottom:6px}.left-panel .shafts-panel__hint{margin-bottom:6px;font-size:.78rem;line-height:1.3}.left-panel .shaft-card{padding:6px 8px;margin-bottom:8px}.left-panel .shaft-card:last-child{margin-bottom:0}.left-panel .shaft-section-card{margin-left:0;margin-bottom:6px;padding:6px 8px}.left-panel .shaft-add-section-btn{margin-left:0!important;margin-top:4px;margin-bottom:6px!important;width:100%;max-width:100%}.left-panel .shaft-card .section-form-header--toolbar,.left-panel .shaft-section-card .section-form-header--toolbar{margin-bottom:4px!important}.left-panel .shaft-card .form-group,.left-panel .shaft-section-card .form-group{margin-bottom:6px}.left-panel .shaft-card .manholes-section{margin-top:6px!important;padding:8px!important}.row-single{flex-wrap:wrap;overflow-x:visible}.manholes-section,.manhole-card{padding:12px}.manhole-card>div{flex-direction:column!important}.manhole-card>div>div{width:100%!important;min-width:100%!important;margin-bottom:12px}.manhole-card button{width:100%;margin-top:8px}.history-item{padding:16px!important}.history-item>div:first-child{flex-direction:column!important;align-items:flex-start!important}.history-item>div:first-child>div:last-child{width:100%;margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}.btn-action{flex:1;min-width:calc(50% - 4px);font-size:.8rem!important;padding:8px 10px!important}.history-results-grid{grid-template-columns:repeat(2,1fr)!important;gap:8px!important}.history-result-item{padding:10px!important}.history-result-item>div:last-child{font-size:1rem!important}.history-summary{padding:12px!important}.history-summary h3{font-size:1rem!important}}@media (max-width: 480px){.container{padding:14px 10px}h1{font-size:1.15rem}.left-panel .section-form{padding:6px 8px;margin-bottom:8px}.left-panel .shafts-panel{padding:6px;margin-bottom:8px}.left-panel .shaft-card{padding:5px 6px;margin-bottom:6px}.left-panel .shaft-section-card{padding:5px 6px;margin-bottom:5px}.left-panel .shaft-add-section-btn{margin-bottom:5px!important;font-size:.78rem;padding:4px 8px}.left-panel .section-form-header--toolbar .section-form-header__title{font-size:1rem!important}.left-panel .section-form-header--toolbar>label{font-size:.7rem!important;padding:4px 6px!important}.left-panel .section-header-actions .btn-add-manhole,.left-panel .section-header-actions .btn-remove{flex:0 1 auto}.history-results-grid{grid-template-columns:1fr!important}.btn-action{min-width:100%;width:100%}.history-item>div:first-child>div:last-child{flex-direction:column}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;position:relative;background:linear-gradient(135deg,#667eea,#764ba2)}.auth-page__lang{position:fixed;top:16px;right:16px;z-index:10}.auth-page__bg{display:none}.auth-shell{position:relative;z-index:1;width:100%;max-width:440px}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:20px;color:#fff;font-weight:600;font-size:1.05rem}.auth-brand__icon{width:48px;height:42px;border-radius:10px;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:800;letter-spacing:-.02em;color:#fff;box-shadow:0 10px 20px #667eea66;border:2px solid rgba(255,255,255,.35)}.auth-card{width:100%;background:#fff;border-radius:12px;padding:36px 32px;box-shadow:0 20px 60px #0000004d}.auth-card h1{margin:0 0 4px;font-size:1.75rem;font-weight:700;color:#2d3748}.auth-card label{display:block;margin-bottom:6px;font-size:.76rem;font-weight:600;color:#4a5568;text-transform:none;letter-spacing:normal;line-height:1.35}.auth-field{margin-bottom:15px}.auth-card input:not(.otp-input__box){width:100%;box-sizing:border-box;padding:8px 12px;height:38px;border:1px solid #e2e8f0;border-radius:6px;font-size:.9rem;color:#2d3748;background:#fff;transition:border-color .3s}.auth-card input:not(.otp-input__box):focus{outline:none;border-color:#667eea;box-shadow:none}.auth-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.auth-btn{width:100%;padding:14px 28px;margin-top:8px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:none}.auth-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #667eea66}.auth-btn:active:not(:disabled){transform:translateY(0)}.auth-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.auth-btn-secondary,.auth-link-btn{width:100%;margin-top:14px;padding:11px;background:transparent;color:#667eea;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:.95rem;font-weight:600;transition:background .2s,border-color .2s}.auth-link-btn{width:auto;border:none;padding:0;margin:0;text-decoration:none;display:inline}.auth-btn-secondary:hover:not(:disabled){background:#f7fafc;border-color:#cbd5e0}.auth-btn-secondary:disabled{opacity:.55;cursor:not-allowed;color:#a0aec0}.auth-resend-row{text-align:center;margin-top:16px;font-size:.9rem;color:#718096}.auth-resend-timer{font-variant-numeric:tabular-nums;font-weight:600;color:#4a5568}.otp-input{display:flex;gap:10px;justify-content:center;margin:8px 0 20px}.otp-input__box{width:48px!important;height:48px!important;padding:0!important;margin:0!important;text-align:center;font-size:1.35rem!important;font-weight:700;border-radius:6px!important;border:1px solid #e2e8f0!important;background:#fff!important;color:#2d3748;transition:border-color .3s}.otp-input__box:focus{border-color:#667eea!important;box-shadow:none!important;background:#fff!important}.otp-input--disabled .otp-input__box{opacity:.6;background:#edf2f7!important}.auth-alert{padding:12px 14px;border-radius:6px;margin-bottom:18px;font-size:.9rem;line-height:1.4}.auth-alert-error{background:#fed7d7;color:#742a2a;border:1px solid #fc8181}.auth-alert-success{background:#c6f6d5;color:#22543d;border:1px solid #68d391}.auth-alert-info{background:#edf2f7;color:#4a5568;border:1px solid #cbd5e0}.auth-footer{margin-top:24px;text-align:center;font-size:.9rem;color:#718096}.auth-footer a{color:#667eea;font-weight:600;text-decoration:none}.auth-footer a:hover{text-decoration:underline}.auth-inline-links{display:flex;justify-content:space-between;align-items:center;margin-top:-8px;margin-bottom:16px;font-size:.88rem}.auth-inline-links a{color:#667eea;font-weight:600;text-decoration:none}.auth-inline-links a:hover{text-decoration:underline}.auth-recaptcha{display:flex;flex-direction:column;align-items:center;margin:8px 0 16px}.auth-recaptcha-error{margin:0 0 12px;font-size:.85rem;color:#e53e3e;text-align:center}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,#667eea,#764ba2)}.app-shell__body{flex:1 1 auto;width:100%;min-height:0;display:flex;flex-direction:column}.app-shell__container{flex:1 1 auto;display:flex;flex-direction:column;width:100%;padding-bottom:28px;min-height:100%;box-sizing:border-box}.app-shell__container.container{padding-top:20px}@media (max-width: 1200px){.app-shell__container.container{padding-top:14px}}@media (max-width: 992px){.app-shell__container.container{padding-top:12px}}@media (max-width: 768px){.app-shell__container.container{padding-top:10px}}.app-shell__content{flex:1 1 auto;width:100%;display:flex;flex-direction:column}.app-top-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 16px;margin-bottom:16px;padding:10px 16px;background:#edf2f7;border-radius:8px}.app-top-bar__home{padding:8px 16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;font-size:.9rem;text-decoration:none;border-radius:6px;flex-shrink:0}.app-top-bar__home:hover{opacity:.92;box-shadow:0 4px 12px #667eea59}.app-top-bar__user{flex:1 1 auto;min-width:0;font-size:.88rem;color:#4a5568;text-align:center}.app-top-bar__actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.language-select{display:flex;align-items:center;flex-shrink:0}.language-select__input{box-sizing:border-box;margin:0;padding:8px 32px 8px 12px;border:1px solid #cbd5e0;border-radius:6px;font-size:.85rem;font-weight:600;line-height:1.2;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%234a5568' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;min-height:36px}.language-select__input--bar{color:#2d3748}.language-select__input--auth{color:#2d3748;box-shadow:0 2px 8px #0000001f}.app-top-bar__logout{box-sizing:border-box;padding:8px 14px;min-height:36px;background:#e53e3e;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:600;line-height:1.2;flex-shrink:0}.app-top-bar__logout:hover{background:#c53030}.legal-page-inner{flex:1 1 auto;width:100%;max-width:880px;margin:0 auto;padding:36px 44px 44px;background:#fff;border-radius:12px;box-shadow:0 16px 48px #0000002e}.legal-page__title{margin:0 0 28px;padding-bottom:16px;border-bottom:2px solid #e2e8f0;color:#2d3748;font-size:1.75rem;font-weight:700}.legal-page__body{color:#4a5568;line-height:1.7;font-size:.95rem}.legal-page__body h2{margin:28px 0 12px;color:#2d3748;font-size:1.2rem;font-weight:700}.legal-page__body h2:first-child{margin-top:0}.legal-page__body h3{margin:18px 0 8px;color:#4a5568;font-size:1.05rem;font-weight:600}.legal-page__body p{margin:0 0 14px}.legal-page__body ul{margin:0 0 16px 1.25rem;padding:0}.legal-page__body li{margin-bottom:8px}.legal-page__body strong{color:#2d3748}.app-footer{width:100%;flex-shrink:0;margin-top:auto;padding:18px 32px 22px;background:linear-gradient(135deg,#5a67d8,#6b46a1);border-top:1px solid rgba(255,255,255,.2);box-sizing:border-box}.app-footer__inner{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px 24px;min-height:28px}.app-footer__copy{grid-column:2;margin:0;padding:0 12px;text-align:center;font-size:.85rem;font-weight:500;color:#fff;line-height:1.4;white-space:nowrap}.app-footer__nav{grid-column:3;justify-self:end;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:20px}.app-footer__link{color:#fff;font-weight:600;font-size:.85rem;text-decoration:none;opacity:.95}.app-footer__link:hover{text-decoration:underline;opacity:1}@media (max-width: 768px){.app-footer{padding:16px 20px 20px}.app-footer__inner{grid-template-columns:1fr;text-align:center}.app-footer__copy{grid-column:1;white-space:normal}.app-footer__nav{grid-column:1;justify-self:center;justify-content:center}}@media (max-width: 768px){.legal-page-inner{padding:24px 20px 28px}.app-top-bar__user{order:3;width:100%;text-align:left}}@media (max-width: 400px){.otp-input__box{width:42px!important;height:44px!important;font-size:1.2rem!important}.otp-input{gap:6px}.auth-card{padding:28px 20px}}.cylinder-outline[data-v-317cc6e9],.fluid-level[data-v-317cc6e9],.water-level[data-v-317cc6e9],.manhole-opening[data-v-317cc6e9],.manhole-volume-box[data-v-317cc6e9],.manhole-label[data-v-317cc6e9],.manhole-volume-label[data-v-317cc6e9],.rect-outline[data-v-8cfc4f76],.fluid-level[data-v-8cfc4f76],.manhole-opening[data-v-8cfc4f76],.manhole-label[data-v-8cfc4f76],.rect-diagonal[data-v-8cfc4f76],.cone-outline[data-v-66a87d92],.fluid-level[data-v-66a87d92],.manhole-opening[data-v-66a87d92],.manhole-label[data-v-66a87d92],.cover-plate[data-v-a67867b8],.hole[data-v-a67867b8],.single-hole-indicator[data-v-a67867b8],.manhole-opening[data-v-a67867b8],.oval-outline[data-v-d126e74c],.fluid-level[data-v-d126e74c],.manhole-opening[data-v-d126e74c],.manhole-label[data-v-d126e74c],.label-bg[data-v-b039728b],.leader-line[data-v-b039728b],.section-label[data-v-b039728b],.dimension-label[data-v-b039728b],.status-label[data-v-b039728b],.calculation-label[data-v-b039728b],.manhole-indicator[data-v-b039728b],.shaft-outline[data-v-13f594e7],.shaft-fluid[data-v-13f594e7],.shaft-label[data-v-13f594e7],.shaft-fill[data-v-13f594e7],.shaft-diagonal[data-v-13f594e7],.fluid-level-indicator[data-v-5c049d7e]{pointer-events:none}.three-d-modal-overlay[data-v-83635ad3]{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000b3;z-index:10000;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.three-d-modal[data-v-83635ad3]{width:96vw;height:93vh;background:#fff;border-radius:16px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 25px 80px #0006}.three-d-header[data-v-83635ad3]{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:linear-gradient(135deg,#2d3748,#4a5568);color:#fff}.three-d-header h3[data-v-83635ad3]{margin:0;font-size:1.1rem;font-weight:600}.three-d-controls[data-v-83635ad3]{display:flex;gap:8px;align-items:center}.control-btn[data-v-83635ad3]{padding:5px 12px;border:1px solid rgba(255,255,255,.3);border-radius:8px;background:#ffffff1a;color:#fff;cursor:pointer;font-size:.83rem;transition:all .2s;white-space:nowrap}.control-btn[data-v-83635ad3]:hover{background:#fff3;border-color:#ffffff80}.control-btn.active[data-v-83635ad3]{background:#63b3ed66;border-color:#63b3ed}.control-btn.close-btn[data-v-83635ad3]{background:#f565654d;border-color:#f5656580;font-size:1.1rem;padding:3px 11px}.control-btn.close-btn[data-v-83635ad3]:hover{background:#f5656599}.three-d-info-bar[data-v-83635ad3]{padding:5px 20px;background:#edf2f7;color:#718096;font-size:.78rem;text-align:center;border-bottom:1px solid #e2e8f0}.three-d-body[data-v-83635ad3]{flex:1;display:flex;overflow:hidden}.three-d-canvas-container[data-v-83635ad3]{flex:1;position:relative;overflow:hidden;background:#fafafa}.three-d-canvas-container canvas[data-v-83635ad3]{display:block;width:100%;height:100%}.three-d-info-panel[data-v-83635ad3]{width:280px;flex-shrink:0;background:#f7fafc;border-right:1px solid #e2e8f0;overflow-y:auto;padding:14px;font-size:.82rem}.three-d-info-panel__toolbar[data-v-83635ad3]{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;padding-bottom:6px;border-bottom:2px solid #e2e8f0}.three-d-info-panel__toolbar h4[data-v-83635ad3]{margin:0;color:#2d3748;font-size:.95rem;font-weight:700;border:none;padding:0}.info-panel-close-btn[data-v-83635ad3]{flex-shrink:0;padding:4px 10px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#4a5568;cursor:pointer;font-size:1rem;line-height:1}.info-panel-close-btn[data-v-83635ad3]:hover{background:#edf2f7}.three-d-info-backdrop[data-v-83635ad3]{display:none}.info-sections[data-v-83635ad3]{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.info-card[data-v-83635ad3]{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:8px 10px}.section-card[data-v-83635ad3]{border-color:#667eea}.info-card-head[data-v-83635ad3]{font-weight:700;color:#2d3748;margin-bottom:4px;font-size:.85rem}.info-row[data-v-83635ad3]{display:flex;justify-content:space-between;padding:1px 0}.info-row span[data-v-83635ad3]:first-child{color:#718096}.info-row span[data-v-83635ad3]:last-child{font-weight:600;color:#2d3748;text-align:right}.lf-row span[data-v-83635ad3]{color:#f77777!important}.water-row span[data-v-83635ad3]{color:#3182ce!important}.shaft-card[data-v-83635ad3]{border-color:#667eea}.shaft-sec-info[data-v-83635ad3]{padding-left:6px;border-left:2px solid #e2e8f0;margin:3px 0}.summary-card[data-v-83635ad3]{border-color:#cbd5e0}.three-d-legend[data-v-83635ad3]{display:flex;gap:18px;padding:8px 20px;background:#f7fafc;border-top:1px solid #e2e8f0;justify-content:center}.legend-item[data-v-83635ad3]{display:flex;align-items:center;gap:5px;font-size:.82rem;color:#4a5568}.lc[data-v-83635ad3]{width:14px;height:14px;border-radius:3px;border:1px solid #e2e8f0}.lc-manhole-legend[data-v-83635ad3]{background:#fff;border:2px solid #dc2626}@media (max-width: 768px){.three-d-modal-overlay[data-v-83635ad3]{padding:0;align-items:stretch}.three-d-modal[data-v-83635ad3]{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0}.three-d-header[data-v-83635ad3]{flex-wrap:wrap;gap:8px;padding:10px 12px}.three-d-header h3[data-v-83635ad3]{flex:1 1 100%;font-size:1rem}.three-d-controls[data-v-83635ad3]{flex-wrap:wrap;width:100%;justify-content:flex-start;gap:6px}.three-d-info-bar[data-v-83635ad3]{padding:6px 10px;font-size:.72rem;line-height:1.35}.three-d-body[data-v-83635ad3]{flex-direction:row;position:relative}.three-d-info-backdrop[data-v-83635ad3]{display:block;position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;background:#0f172a85}.three-d-info-panel.three-d-info-panel--drawer[data-v-83635ad3]{position:absolute;left:0;top:0;bottom:0;width:min(300px,88vw);max-width:88vw;z-index:40;flex-shrink:0;transform:translate(-100%);transition:transform .28s ease;border-right:1px solid #e2e8f0;border-bottom:none;max-height:none;box-shadow:4px 0 28px #0000002e;-webkit-overflow-scrolling:touch}.three-d-info-panel.three-d-info-panel--drawer.three-d-info-panel--open[data-v-83635ad3]{transform:translate(0)}.three-d-canvas-container[data-v-83635ad3]{flex:1;min-height:0;width:100%}.three-d-legend[data-v-83635ad3]{flex-wrap:wrap;gap:10px 14px;padding:8px 12px;justify-content:center}.three-d-controls[data-v-83635ad3]{justify-content:center}}@media (max-width: 480px){.three-d-info-panel.three-d-info-panel--drawer[data-v-83635ad3]{width:min(280px,92vw);padding:10px}.control-btn[data-v-83635ad3]{font-size:.75rem;padding:4px 8px}}.label-3d{padding:6px 12px;border-radius:6px;font-size:13px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;pointer-events:none;white-space:nowrap;line-height:1.35;font-weight:700}.label-section{background:#fffffff0;color:#dc2626;border:1px solid #fecaca;box-shadow:0 1px 4px #00000014}.label-interface{background:#15803df2;color:#fff;font-weight:600;font-size:13px}.label-water{background:#3182ceeb;color:#fff;font-weight:600}.label-dim{background:#dc2626f2;color:#fff;border:1px solid #b91c1c;font-size:13px;font-weight:700}.label-delta{background:#22c55ef2;color:#fff;font-size:13px;font-weight:700}.delta-row span{color:#16a34a!important}.manhole-detail-row span:first-child{color:#991b1b!important;font-size:.78em}.manhole-detail-row span:last-child{color:#dc2626!important;font-size:.8em}.volume-warning-alert[data-v-0c672ba8]{display:flex;align-items:center;gap:12px;padding:12px 16px 16px;background:linear-gradient(135deg,#fff3cd,#ffe69c);border:2px solid #ffc107;border-radius:8px;margin-bottom:12px;box-shadow:0 2px 8px #ffc1074d;animation:pulse-warning-0c672ba8 2s ease-in-out infinite}@keyframes pulse-warning-0c672ba8{0%,to{box-shadow:0 2px 8px #ffc1074d}50%{box-shadow:0 4px 16px #ffc10780}}.volume-warning-alert .warning-icon[data-v-0c672ba8]{font-size:1.8rem;flex-shrink:0}.volume-warning-alert .warning-content[data-v-0c672ba8]{display:flex;flex-direction:column;gap:2px}.volume-warning-alert .warning-content strong[data-v-0c672ba8]{color:#856404;font-size:1rem}.volume-warning-alert .warning-content span[data-v-0c672ba8]{color:#664d03;font-size:.85rem}.volume-warning-alert .warning-content .warning-suggestion[data-v-0c672ba8]{color:#856404;font-size:.9rem;font-weight:600;margin-top:4px;font-style:italic}.capacity-info-bar[data-v-0c672ba8]{display:flex;flex-direction:row;align-items:center;flex-wrap:nowrap;gap:10px;padding:10px 14px;background:linear-gradient(135deg,#d4edda,#c3e6cb);border:1px solid #28a745;border-radius:8px;margin-bottom:12px;color:#155724;font-size:.85rem}.capacity-info-bar .info-icon[data-v-0c672ba8]{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:1.35rem;font-size:1.15rem;line-height:1;color:#28a745}.capacity-info-bar__text[data-v-0c672ba8]{flex:1 1 auto;min-width:0;line-height:1.35;overflow-wrap:anywhere;word-break:break-word}.svg-warning-overlay-container[data-v-0c672ba8]{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;z-index:100;display:flex;align-items:center;justify-content:center;pointer-events:all}.svg-warning-overlay-backdrop[data-v-0c672ba8]{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;background:#00000080;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.svg-warning-overlay-content[data-v-0c672ba8]{position:relative;z-index:101;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.svg-overlay-warning-box[data-v-0c672ba8]{display:flex;align-items:flex-start;gap:15px;padding:20px 30px 25px;border-radius:12px;box-shadow:0 8px 32px #0000004d;max-width:90%;animation:warningPulse-0c672ba8 2s ease-in-out infinite}.svg-overlay-warning-box.volume-warning[data-v-0c672ba8]{background:linear-gradient(135deg,#fef3c7,#fde68a);border:3px solid #f59e0b}.svg-overlay-warning-box.geometry-warning[data-v-0c672ba8]{background:linear-gradient(135deg,#fff3cd,#ffeaa7);border:3px solid #ffc107}.svg-overlay-warning-box .warning-icon[data-v-0c672ba8]{font-size:2.5rem;line-height:1}.svg-overlay-warning-box .warning-text[data-v-0c672ba8]{display:flex;flex-direction:column;gap:6px}.svg-overlay-warning-box .warning-text strong[data-v-0c672ba8]{font-size:1.1rem;color:#92400e}.svg-overlay-warning-box.geometry-warning .warning-text strong[data-v-0c672ba8]{color:#856404}.svg-overlay-warning-box .warning-text p[data-v-0c672ba8]{margin:0;font-size:.9rem;color:#78350f}.svg-overlay-warning-box.geometry-warning .warning-text p[data-v-0c672ba8]{color:#856404}.svg-overlay-warning-box .warning-text .suggestion[data-v-0c672ba8]{font-weight:600;font-style:italic;margin-top:4px}@keyframes warningPulse-0c672ba8{0%,to{transform:scale(1);box-shadow:0 8px 32px #0000004d}50%{transform:scale(1.02);box-shadow:0 12px 40px #0006}}.separator-diagram-container[data-v-0c672ba8]{margin:0;padding:20px;background:#fff;border-radius:12px;box-shadow:0 6px 20px #00000026;border:2px solid #cbd5e0;width:100%;min-height:0;flex:1;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}.diagram-header[data-v-0c672ba8]{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px 12px;margin-bottom:25px;padding-bottom:20px;border-bottom:3px solid #4299e1}.diagram-header__titles[data-v-0c672ba8]{flex:1 1 auto;min-width:0}.export-meta-label[data-v-0c672ba8]{margin:0 0 6px;color:#1a202c;font-size:1.05rem;font-weight:600;letter-spacing:-.01em;line-height:1.35;word-break:break-word}.diagram-header h3[data-v-0c672ba8]{margin:0;color:#2d3748;font-size:1.5rem;font-weight:700;letter-spacing:-.02em;min-width:0}.zoom-controls[data-v-0c672ba8]{display:flex;align-items:center;flex-wrap:wrap;gap:8px;flex:1 1 auto;justify-content:flex-end;max-width:100%}.zoom-btn[data-v-0c672ba8]{border:2px solid #cbd5e0;background:#fff;border-radius:6px;cursor:pointer;font-size:18px;font-weight:700;color:#4a5568;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;flex-shrink:0}.zoom-btn[data-v-0c672ba8]:not(.three-d-btn){width:36px;height:36px;padding:0}.zoom-btn[data-v-0c672ba8]:hover{background:#4299e1;color:#fff;border-color:#4299e1}.fullscreen-btn[data-v-0c672ba8]:hover{background:#48bb78;color:#fff;border-color:#48bb78}.three-d-blocked-overlay[data-v-0c672ba8]{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:10001;display:flex;align-items:center;justify-content:center;background:#000000a6;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);padding:16px;box-sizing:border-box}.three-d-blocked-dialog[data-v-0c672ba8]{background:#fff;border-radius:16px;max-width:520px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 25px 80px #00000073}.three-d-blocked-header[data-v-0c672ba8]{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:linear-gradient(135deg,#2d3748,#4a5568);color:#fff}.three-d-blocked-header h3[data-v-0c672ba8]{margin:0;font-size:1.05rem;font-weight:600}.three-d-blocked-lead[data-v-0c672ba8]{margin:0;padding:14px 18px 0;font-size:.88rem;color:#4a5568}.three-d-blocked-warnings[data-v-0c672ba8]{padding:12px 18px 18px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:12px}.three-d-blocked-warnings .svg-overlay-warning-box[data-v-0c672ba8]{max-width:100%;animation:none}.three-d-blocked-hint[data-v-0c672ba8]{margin-top:0!important}.three-d-blocked-actions[data-v-0c672ba8]{padding:0 18px 16px;display:flex;justify-content:flex-end;align-items:center}.three-d-blocked-action-btn[data-v-0c672ba8]{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;min-width:100px;padding:10px 22px;border:2px solid #cbd5e0;border-radius:8px;background:#fff;color:#2d3748;font-size:.875rem;font-weight:600;line-height:1.25;cursor:pointer;white-space:nowrap;transition:background .2s,border-color .2s,color .2s}.three-d-blocked-action-btn[data-v-0c672ba8]:hover{background:#edf2f7;border-color:#a0aec0;color:#1a202c}.three-d-blocked-action-btn[data-v-0c672ba8]:focus{outline:none;box-shadow:0 0 0 3px #4299e173}.three-d-blocked-action-btn[data-v-0c672ba8]:focus:not(:focus-visible){box-shadow:none}.three-d-blocked-action-btn[data-v-0c672ba8]:focus-visible{box-shadow:0 0 0 3px #4299e173}.three-d-btn--blocked[data-v-0c672ba8]{opacity:.88;box-shadow:inset 0 0 0 1px #f59e0b80}.three-d-btn[data-v-0c672ba8]{width:auto;min-width:4.75rem;height:36px;min-height:36px;padding:0 12px;font-size:13px;font-weight:600;line-height:1.15;white-space:nowrap;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea}.three-d-btn[data-v-0c672ba8]:hover{background:linear-gradient(135deg,#5a67d8,#6b46a1);border-color:#5a67d8;color:#fff;transform:scale(1.05)}.close-btn[data-v-0c672ba8]:hover{background:#e53e3e;color:#fff;border-color:#e53e3e}.zoom-level[data-v-0c672ba8]{margin-left:8px;font-size:.9rem;color:#718096;font-weight:600;min-width:50px}.svg-container[data-v-0c672ba8]{width:100%;max-width:100%;flex:1;min-height:560px;max-height:82vh;overflow:hidden;border:2px solid #cbd5e0;border-radius:10px;background:#f8f9fa;position:relative;box-shadow:0 4px 12px #0000001a}.svg-container.svg-container--fitted[data-v-0c672ba8]{flex:0 0 auto}.svg-container svg[data-v-0c672ba8]{width:100%;height:100%}.separator-svg[data-v-0c672ba8]{display:block;cursor:grab;user-select:none;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none}.separator-svg.dragging[data-v-0c672ba8],.separator-svg[data-v-0c672ba8]:active{cursor:grabbing}.diagram-legend[data-v-0c672ba8]{display:flex;gap:20px;margin-top:15px;padding-top:15px;border-top:1px solid #e2e8f0;flex-wrap:wrap}.legend-item[data-v-0c672ba8]{display:flex;align-items:center;gap:8px}.legend-color[data-v-0c672ba8]{width:20px;height:20px;border-radius:4px;border:1px solid #cbd5e0}.legend-color.legend-interface-line[data-v-0c672ba8]{background:#15803d;border-color:#15803d}.legend-item span[data-v-0c672ba8]{font-size:1rem;color:#4a5568}.calculation-summary[data-v-0c672ba8]{margin-top:20px;padding:15px;background:#f7fafc;border-radius:8px;border:1px solid #e2e8f0}.calculation-summary h4[data-v-0c672ba8]{margin:0 0 12px;color:#2d3748;font-size:1rem;font-weight:600}.summary-grid[data-v-0c672ba8]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.summary-item[data-v-0c672ba8]{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#fff;border-radius:6px;border:1px solid #e2e8f0}.summary-label[data-v-0c672ba8]{font-size:.85rem;color:#718096;font-weight:500}.summary-value[data-v-0c672ba8]{font-size:.9rem;color:#2d3748;font-weight:600}.summary-value.highlight[data-v-0c672ba8]{color:#4299e1;font-weight:700}.volume-calculations-panel[data-v-0c672ba8]{margin-top:20px;margin-bottom:20px;padding:15px;background:#f7fafc;border-radius:8px;border:1px solid #e2e8f0;flex-shrink:0}.volume-calculations-table-wrapper[data-v-0c672ba8]{overflow-x:auto;overflow-y:auto;max-height:280px}.volume-calculations-table[data-v-0c672ba8]{width:100%;border-collapse:collapse;font-size:.9rem}.volume-calculations-table th[data-v-0c672ba8],.volume-calculations-table td[data-v-0c672ba8]{padding:8px 12px;text-align:left;border-bottom:1px solid #e2e8f0}.volume-calculations-table th[data-v-0c672ba8]{background:#edf2f7;color:#2d3748;font-weight:600}.volume-calculations-table td[data-v-0c672ba8]{background:#fff}.volume-calculations-table tbody tr:hover td[data-v-0c672ba8]{background:#f7fafc}.volume-calculations-table .volume-cell[data-v-0c672ba8]{font-family:Courier New,monospace;font-weight:600;color:#dc2626;min-width:90px}.volume-calculations-table .height-cell[data-v-0c672ba8]{font-family:Courier New,monospace;min-width:70px}.volume-calculations-table .section-cell[data-v-0c672ba8]{color:#4a5568}.volume-calculations-table tr.volume-table-total td[data-v-0c672ba8]{background:#edf2f7;font-weight:700;border-top:2px solid #2d3748}.volume-calculations-table tr.volume-table-total .volume-cell[data-v-0c672ba8],.volume-calculations-table tr.volume-table-total .height-cell[data-v-0c672ba8]{color:#2d3748}.volume-calculations-list[data-v-0c672ba8]{display:flex;flex-direction:column;gap:6px;max-height:300px;overflow-y:auto;overflow-x:hidden;padding-right:4px;-webkit-overflow-scrolling:touch}.volume-calculations-list[data-v-0c672ba8]::-webkit-scrollbar{width:8px}.volume-calculations-list[data-v-0c672ba8]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.volume-calculations-list[data-v-0c672ba8]::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:4px}.volume-calculations-list[data-v-0c672ba8]::-webkit-scrollbar-thumb:hover{background:#a0aec0}.volume-calculation-item[data-v-0c672ba8]{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#fff;border-radius:6px;border:1px solid #e2e8f0;font-size:.9rem}.volume-calculation-item.positive .volume-value[data-v-0c672ba8]{color:#2d3748;font-weight:600}.volume-calculation-item.negative .volume-value[data-v-0c672ba8]{color:#e53e3e;font-weight:600}.volume-calculation-item.cover-plate-hole .volume-value[data-v-0c672ba8]{color:#dc2626;font-weight:600}.volume-value[data-v-0c672ba8]{font-family:Courier New,monospace;font-size:.95rem;min-width:80px;text-align:right}.volume-label[data-v-0c672ba8]{color:#718096;font-size:.85rem;flex:1;margin-left:12px}.fullscreen-modal[data-v-0c672ba8]{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000f2;z-index:9999;display:flex;flex-direction:column;padding:10px;box-sizing:border-box;overflow:hidden}.fullscreen-header[data-v-0c672ba8]{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding:10px 15px;background:#fff;border-radius:8px;box-shadow:0 4px 12px #0003;flex-wrap:wrap;gap:10px;min-height:auto}.fullscreen-title[data-v-0c672ba8]{margin:0;color:#2d3748;font-size:1.2rem;flex:1;min-width:0}.fullscreen-controls[data-v-0c672ba8]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.fullscreen-svg-container[data-v-0c672ba8]{flex:1;width:100%;min-height:0;overflow:hidden;border:2px solid #4299e1;border-radius:8px;background:#f8f9fa;position:relative}.fullscreen-svg-container svg[data-v-0c672ba8]{width:100%;height:100%}.fullscreen-legend[data-v-0c672ba8]{display:flex;gap:12px;margin-top:10px;padding:12px 15px;background:#fff;border-radius:8px;flex-wrap:wrap;justify-content:center;max-height:120px;overflow-y:auto;-webkit-overflow-scrolling:touch}@media (max-width: 992px){.separator-diagram-container[data-v-0c672ba8]{padding:14px 12px}.diagram-header[data-v-0c672ba8]{flex-direction:column;align-items:center;text-align:center}.diagram-header h3[data-v-0c672ba8]{flex:0 0 auto;width:100%;font-size:1.15rem;text-align:center}.zoom-controls[data-v-0c672ba8]{flex:0 0 auto;width:100%;justify-content:center}.zoom-level[data-v-0c672ba8]{text-align:center;margin-left:0}.svg-container[data-v-0c672ba8]:not(.svg-container--fitted){min-height:280px;max-height:min(70vh,580px)}}@media (max-width: 768px){.separator-diagram-container[data-v-0c672ba8]{padding:12px 10px}.diagram-header[data-v-0c672ba8]{margin-bottom:16px;padding-bottom:14px;flex-direction:column;align-items:center}.diagram-header h3[data-v-0c672ba8]{font-size:1rem;text-align:center;width:100%}.zoom-controls[data-v-0c672ba8]{gap:6px;width:100%;justify-content:center}.zoom-btn[data-v-0c672ba8]:not(.three-d-btn){width:34px;height:34px;font-size:16px}.three-d-btn[data-v-0c672ba8]{width:auto;min-width:4.5rem;height:34px;min-height:34px;padding:0 10px;font-size:12px;line-height:1.15}.zoom-level[data-v-0c672ba8]{flex:0 0 auto;margin-left:0;text-align:center;min-width:0;width:100%}.capacity-info-bar[data-v-0c672ba8]{font-size:.78rem;padding:8px 10px;align-items:center;flex-wrap:nowrap;gap:8px}.capacity-info-bar .info-icon[data-v-0c672ba8]{align-self:center}.svg-container[data-v-0c672ba8]:not(.svg-container--fitted){min-height:220px;max-height:min(65vh,520px)}}@media (max-width: 480px){.separator-diagram-container[data-v-0c672ba8]{padding:10px 8px}.zoom-btn[data-v-0c672ba8]:not(.three-d-btn){width:32px;height:32px;font-size:14px}.three-d-btn[data-v-0c672ba8]{width:auto;min-width:4.25rem;height:32px;min-height:32px;padding:0 9px;font-size:11px;line-height:1.15}.svg-container[data-v-0c672ba8]:not(.svg-container--fitted){min-height:200px;max-height:min(58vh,460px)}}@media (max-width: 768px){.fullscreen-modal[data-v-0c672ba8]{padding:5px}.fullscreen-header[data-v-0c672ba8]{flex-wrap:wrap;gap:8px;padding:8px 10px;margin-bottom:8px}.fullscreen-title[data-v-0c672ba8]{font-size:1rem;flex:1 1 100%;width:100%;margin-bottom:0}.fullscreen-controls[data-v-0c672ba8]{flex-wrap:wrap;width:100%;justify-content:flex-start;gap:6px}.fullscreen-controls .zoom-btn[data-v-0c672ba8]{width:32px;height:32px;font-size:16px;padding:0}.fullscreen-controls .zoom-level[data-v-0c672ba8]{font-size:.8rem;margin-left:4px;min-width:40px}.fullscreen-svg-container[data-v-0c672ba8]{border-width:1px}.fullscreen-legend[data-v-0c672ba8]{padding:10px 12px;gap:8px;max-height:100px;font-size:.85rem}.fullscreen-legend .legend-item[data-v-0c672ba8]{font-size:.8rem}.fullscreen-legend .legend-color[data-v-0c672ba8]{width:14px;height:14px}}@media (max-width: 480px){.fullscreen-title[data-v-0c672ba8]{font-size:.9rem}.fullscreen-controls .zoom-btn[data-v-0c672ba8]{width:28px;height:28px;font-size:14px}.fullscreen-controls .zoom-level[data-v-0c672ba8]{font-size:.75rem;min-width:35px}.fullscreen-legend[data-v-0c672ba8]{max-height:80px;padding:8px 10px;gap:6px}.fullscreen-legend .legend-item[data-v-0c672ba8]{font-size:.75rem}}.section-preview[data-v-eb025587]{width:100%;max-width:100%;height:auto;min-height:200px;border:1px solid #e2e8f0;border-radius:6px;padding:8px;background:#f8f9fa;flex-shrink:0;position:relative}.preview-controls[data-v-eb025587]{display:flex;align-items:center;gap:6px;margin-bottom:8px;padding:4px;background:#fff;border-radius:4px;border:1px solid #e2e8f0}.control-btn[data-v-eb025587]{width:28px;height:28px;border:1px solid #cbd5e0;background:#fff;border-radius:4px;cursor:pointer;font-size:16px;font-weight:700;color:#4a5568;transition:all .2s;display:flex;align-items:center;justify-content:center;padding:0;line-height:1}.control-btn[data-v-eb025587]:hover{background:#4299e1;color:#fff;border-color:#4299e1}.view-large-btn[data-v-eb025587]:hover{background:#48bb78;border-color:#48bb78}.zoom-level[data-v-eb025587]{margin-left:4px;font-size:.75rem;color:#718096;font-weight:600;min-width:40px;text-align:right}.svg-wrapper[data-v-eb025587]{width:100%;overflow:hidden;border:2px solid #cbd5e0;background:#fff;border-radius:8px;position:relative;min-height:500px;box-shadow:0 2px 8px #0000001a}.preview-svg[data-v-eb025587]{display:block;width:100%;cursor:grab;-webkit-user-select:none;user-select:none}.preview-svg[data-v-eb025587]:active{cursor:grabbing}.modal-overlay[data-v-eb025587]{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content[data-v-eb025587]{background:#fff;border-radius:8px;width:90%;max-width:1200px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.modal-header[data-v-eb025587]{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:1px solid #e2e8f0;background:#f7fafc;border-radius:8px 8px 0 0}.modal-header h3[data-v-eb025587]{margin:0;color:#2d3748;font-size:1.2rem}.close-btn[data-v-eb025587]{width:32px;height:32px;border:1px solid #cbd5e0;background:#fff;border-radius:4px;cursor:pointer;font-size:24px;font-weight:700;color:#4a5568;transition:all .2s;display:flex;align-items:center;justify-content:center;padding:0;line-height:1}.close-btn[data-v-eb025587]:hover{background:#e53e3e;color:#fff;border-color:#e53e3e}.modal-svg-container[data-v-eb025587]{width:100%;height:70vh;min-height:500px;overflow:hidden;border:1px solid #e2e8f0;background:#f8f9fa;position:relative}.modal-svg[data-v-eb025587]{display:block;width:100%;height:100%;cursor:grab;-webkit-user-select:none;user-select:none}.modal-svg[data-v-eb025587]:active{cursor:grabbing}.modal-controls[data-v-eb025587]{display:flex;align-items:center;gap:8px;padding:12px 20px;border-top:1px solid #e2e8f0;background:#f7fafc;border-radius:0 0 8px 8px}.modal-controls .control-btn[data-v-eb025587]{width:32px;height:32px;font-size:18px}.modal-controls .zoom-level[data-v-eb025587]{margin-left:8px;font-size:.9rem;min-width:50px}.dimension-labels[data-v-eb025587],.dimension-line[data-v-eb025587]{pointer-events:none}.dimension-line text[data-v-eb025587]{pointer-events:none;-webkit-user-select:none;user-select:none}.shape-type-label[data-v-eb025587]{pointer-events:none}.shape-type-label text[data-v-eb025587]{pointer-events:none;-webkit-user-select:none;user-select:none}.history-action-btn[data-v-5dd32d1c]{position:relative;width:36px;height:36px;border:none;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;padding:0;overflow:visible;cursor:pointer;color:#fff;flex-shrink:0;transition:transform .15s ease,background .15s ease,box-shadow .15s ease}.history-action-btn__icon[data-v-5dd32d1c]{width:18px;height:18px;display:block;flex-shrink:0;pointer-events:none}.history-action-btn__tooltip[data-v-5dd32d1c]{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(-4px);padding:6px 10px;border-radius:6px;background:#1a202c;color:#fff;font-size:.75rem;font-weight:500;line-height:1.2;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .15s ease,transform .15s ease,visibility .15s ease;z-index:30;box-shadow:0 4px 12px #0000002e}.history-action-btn__tooltip[data-v-5dd32d1c]:before{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-bottom-color:#1a202c}.history-action-btn:hover .history-action-btn__tooltip[data-v-5dd32d1c],.history-action-btn:focus-visible .history-action-btn__tooltip[data-v-5dd32d1c]{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.history-action-btn[data-v-5dd32d1c]:focus-visible{outline:2px solid rgba(255,255,255,.85);outline-offset:2px}.history-action-btn[data-v-5dd32d1c]:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0000001f}.history-action-btn--load[data-v-5dd32d1c]{background:#48bb78}.history-action-btn--load[data-v-5dd32d1c]:hover{background:#38a169}.history-action-btn--export[data-v-5dd32d1c]{background:#4299e1}.history-action-btn--export[data-v-5dd32d1c]:hover{background:#3182ce}.history-action-btn--delete[data-v-5dd32d1c]{background:#e53e3e}.history-action-btn--delete[data-v-5dd32d1c]:hover{background:#c53030}.calculator-title-en[data-v-ac6fd567]{color:#718096;font-size:.95rem;font-weight:500;margin:-8px 0 6px}.calculator-subtitle[data-v-ac6fd567]{color:#718096;margin-bottom:20px}.split-screen-container[data-v-ac6fd567]{display:flex;gap:20px;align-items:flex-start;margin-top:20px}.left-panel[data-v-ac6fd567]{flex:0 0 33%;min-width:0;max-width:33%}.right-panel[data-v-ac6fd567]{flex:1;min-width:0;position:sticky;top:20px;height:calc(100vh - 40px);overflow-x:hidden;display:flex;flex-direction:column}.action-buttons-row[data-v-ac6fd567]{display:flex;flex-direction:column;gap:10px;margin:20px 0;width:100%}.action-buttons-row__line[data-v-ac6fd567]{display:flex;gap:10px;width:100%}.action-buttons-row__line .btn[data-v-ac6fd567],.action-buttons-row__line .btn-reset[data-v-ac6fd567]{flex:1 1 0;width:100%;min-width:0}.btn-import[data-v-ac6fd567],.btn-export[data-v-ac6fd567]{display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-import__icon[data-v-ac6fd567],.btn-export__icon[data-v-ac6fd567]{width:18px;height:18px;flex-shrink:0}.settings-csv-input[data-v-ac6fd567]{display:none}.history-item__actions[data-v-ac6fd567]{display:flex;gap:6px;flex-shrink:0;position:relative;z-index:2;overflow:visible}.csv-export-modal-overlay[data-v-ac6fd567]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:20px;background:#00000080}.csv-export-modal[data-v-ac6fd567]{width:100%;max-width:440px;background:#fff;border-radius:12px;padding:24px;box-shadow:0 20px 60px #00000040}.csv-export-modal__header[data-v-ac6fd567]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.csv-export-modal__header h2[data-v-ac6fd567]{margin:0;font-size:1.25rem;color:#2d3748}.csv-export-modal__close[data-v-ac6fd567]{border:none;background:#edf2f7;color:#4a5568;width:32px;height:32px;border-radius:6px;cursor:pointer;font-size:1rem;line-height:1}.csv-export-modal__hint[data-v-ac6fd567]{margin:0 0 16px;font-size:.88rem;color:#718096}.csv-export-modal__field[data-v-ac6fd567]{margin-bottom:14px}.csv-export-modal__field label[data-v-ac6fd567]{display:block;margin-bottom:6px;font-size:.88rem;font-weight:600;color:#4a5568}.csv-export-modal__field input[data-v-ac6fd567]{width:100%;padding:10px 12px;border:1px solid #cbd5e0;border-radius:6px;font-size:.95rem;font-weight:400;color:#1a202c;box-sizing:border-box}.csv-export-modal__preview[data-v-ac6fd567]{margin-top:8px;padding:12px 14px;background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px}.csv-export-modal__preview-title[data-v-ac6fd567]{font-size:.82rem;font-weight:700;color:#4a5568;margin-bottom:8px;text-transform:uppercase;letter-spacing:.04em}.csv-export-modal__preview-line[data-v-ac6fd567]{font-size:.95rem;font-weight:600;color:#1a202c;word-break:break-word;margin-bottom:6px}.csv-export-modal__preview-empty[data-v-ac6fd567]{font-size:.88rem;color:#718096;font-style:italic;margin-bottom:6px}.csv-export-modal__preview-filename[data-v-ac6fd567]{font-size:.82rem;color:#4a5568;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.csv-export-modal__actions[data-v-ac6fd567]{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.csv-export-modal__actions .btn[data-v-ac6fd567],.csv-export-modal__actions .btn-reset[data-v-ac6fd567]{width:auto;min-width:110px}@media (max-width: 1200px){.split-screen-container[data-v-ac6fd567]{flex-direction:column;gap:16px}.left-panel[data-v-ac6fd567],.right-panel[data-v-ac6fd567]{flex:1 1 100%;max-width:100%;width:100%}.right-panel[data-v-ac6fd567]{position:relative;top:0;height:auto;min-height:min(72vh,640px);overflow-x:visible;overflow-y:visible}}@media (max-width: 768px){.split-screen-container[data-v-ac6fd567]{gap:12px;margin-top:12px}.left-panel[data-v-ac6fd567]{overflow-x:auto;-webkit-overflow-scrolling:touch}.right-panel[data-v-ac6fd567]{min-height:min(68vh,560px)}.action-buttons-row[data-v-ac6fd567]{margin:16px 0;gap:8px}.action-buttons-row__line[data-v-ac6fd567]{gap:8px}.action-buttons-row__line .btn[data-v-ac6fd567],.action-buttons-row__line .btn-reset[data-v-ac6fd567]{padding:12px 20px}}@media (max-width: 480px){.right-panel[data-v-ac6fd567]{min-height:min(62vh,480px)}}.btn-add-manhole[data-v-ac6fd567]:disabled{opacity:.55;cursor:not-allowed}
