:root{color-scheme:light;--bg:#e8eef7;--bg2:#f2f5fc;--rail:#e6edf6;--rail2:#dbe6f4;--surface:#fff;--surface2:#f8faff;--canvas:#fcfdff;--text:#172638;--muted:#5b6e85;--border:#d4dfea;--accent:#2464d7;--soft:#e6efff;--field:#f1f5fb;--read:#edf2f8;--grid:#eaf0f7;--stripe:#f6f9fd;--error:#a63235;--success:#296d59;--warning:#8a5b18;--font:14px;--radius:17px;--general-w:280px;--info-w:205px;--sketch-h:56%;font-family:'Segoe UI',Arial,sans-serif;font-size:var(--font);font-synthesis:none}
:root[data-theme=dark]{color-scheme:dark;--bg:#111c2e;--bg2:#1c2a3e;--rail:#24364c;--rail2:#17263a;--surface:#253448;--surface2:#202d40;--canvas:#17273b;--text:#ecf3ff;--muted:#a9bed8;--border:#41566f;--accent:#9dc6ff;--soft:#304d73;--field:#182b41;--read:#293e56;--grid:#283e55;--stripe:#1f334b;--error:#ffb4b9;--success:#a2d8c5;--warning:#edc68e}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:linear-gradient(130deg,var(--bg),var(--bg2));color:var(--text)}button,input,select,textarea{font:inherit;color:inherit}button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:35px;padding:7px 12px;border:1px solid var(--border);border-radius:15px;background:linear-gradient(var(--surface),var(--read));cursor:pointer;white-space:nowrap;transition:background .13s,border-color .13s,box-shadow .13s}button:hover{background:var(--soft);border-color:var(--accent)}button:active{transform:translateY(.5px)}button:disabled{opacity:.45;cursor:default;transform:none}button.primary,.primary-action{background:linear-gradient(#3973de,#245bc8);border-color:#2864df;color:white;font-weight:600}button.primary:hover{background:linear-gradient(#4983eb,#326bd7)}button.danger{color:var(--error)}button.selected,button[aria-pressed=true]{background:var(--soft);border-color:var(--accent);color:var(--accent)}button.ghost,button.icon-button{background:transparent;border-color:transparent}button.icon-button{padding:4px;min-width:29px;min-height:29px;border-radius:10px}button.icon-button:hover{background:var(--soft)}button .icon{width:19px;height:19px;display:inline-flex;flex-shrink:0}.icon svg{width:100%;height:100%;display:block}.icon-button .icon{width:20px;height:20px}a{color:var(--accent)}h1,h2,h3,p{margin-top:0}h2,h3{font-size:1.07rem;font-weight:600}input,select,textarea{border:1px solid var(--border);border-radius:10px;background:linear-gradient(var(--field),var(--surface2));padding:7px 10px;min-height:36px;min-width:0;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 12%,transparent)}input[readonly]{background:var(--read);border-color:transparent;color:var(--text)}input:disabled{opacity:.6}input[type=range]{appearance:none;min-height:20px;height:22px;padding:0;border:0;background:transparent;box-shadow:none;cursor:pointer;accent-color:#367ced}input[type=range]::-webkit-slider-runnable-track{height:5px;border-radius:5px;background:linear-gradient(90deg,#367ced var(--range-fill,50%),var(--border) var(--range-fill,50%))}input[type=range]::-webkit-slider-thumb{appearance:none;width:15px;height:15px;margin-top:-5px;border:2px solid var(--surface);border-radius:5px;background:#367ced;box-shadow:0 1px 3px #14294c40}textarea{resize:vertical;min-height:72px}label{font-size:.95rem}select option{background:var(--surface);color:var(--text)}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 30%,transparent);border:2px solid transparent;border-radius:9px;background-clip:padding-box}::-webkit-scrollbar-corner{background:transparent}
#app{height:100dvh;display:grid;grid-template-columns:52px minmax(0,1fr);grid-template-rows:60px 38px minmax(0,1fr) 25px;gap:5px 8px;padding:7px 9px 0 0}.rail{grid-column:1;grid-row:1/-1;display:flex;align-items:center;flex-direction:column;gap:8px;background:linear-gradient(var(--rail),var(--rail2));border-right:1px solid var(--border);padding:4px 6px 9px}.brand-icon{width:29px;height:29px;margin:3px 0 14px}.rail button{width:38px;height:40px;min-height:40px;padding:6px;border:0;border-radius:12px;background:transparent;color:var(--muted)}.rail button .icon{width:28px;height:28px}.rail button:hover{background:var(--soft)}.rail button.selected{background:linear-gradient(#6c98ff,#2864df);color:#fff;box-shadow:0 4px 12px #245bc826}.rail .spacer{flex:1}.rail .avatar{font-size:11px;font-weight:600;background:var(--soft);color:var(--accent);width:30px;height:30px;min-height:30px;border-radius:50%;margin-top:6px}.toolbar{grid-column:2;display:flex;align-items:center;gap:6px;min-width:0;padding:8px 10px;border:1px solid var(--border);background:linear-gradient(var(--surface),var(--surface2));border-radius:20px;overflow:auto hidden}.toolbar .toolbar-spacer{flex:1;min-width:12px}.toolbar button{font-size:.93rem}.toolbar button[data-action=save]{min-width:155px}.toolbar .toolbar-icon{padding:6px;min-width:32px;min-height:32px}.doc-tabs{grid-column:2;display:flex;align-items:center;gap:5px;min-width:0;overflow:auto hidden}.doc-tab{display:flex;align-items:center;gap:6px;background:var(--rail2);border:1px solid transparent;border-radius:11px 11px 4px 4px;min-width:140px;max-width:275px;height:35px;padding:4px 7px 4px 12px;cursor:pointer;flex-shrink:0}.doc-tab.active{background:var(--surface);border-color:var(--border);color:var(--accent)}.doc-tab>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-tab .doc-close{min-width:23px;width:23px;min-height:23px;height:23px;border:0;padding:1px;background:transparent;color:var(--muted);font-size:19px}.doc-tab .unsaved-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0}.tab-add{width:30px;height:30px;min-height:30px;border:0;padding:2px;font-size:23px;background:transparent;flex-shrink:0}.page{grid-column:2;min-width:0;min-height:0;overflow:hidden}.editor-grid{display:grid;grid-template-columns:minmax(210px,var(--general-w)) 6px minmax(160px,var(--info-w)) 6px minmax(360px,1fr);height:100%;min-height:0}.editor-grid.hide-info{grid-template-columns:minmax(210px,var(--general-w)) 6px minmax(360px,1fr)}.editor-grid.hide-info .info-card,.editor-grid.hide-info .info-split{display:none}.card{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(var(--surface),var(--surface2));min-width:0;min-height:0}.general-card,.info-card{overflow:auto;padding:15px 13px 18px}.card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;margin-bottom:13px;min-height:27px}.card-heading h2{line-height:1.4;margin:0;min-width:0}.card-heading .icon-button{flex-shrink:0;margin-top:-3px}.general-card .section-heading{margin:22px 0 12px}.field{display:flex;flex-direction:column;gap:5px;position:relative;margin-bottom:13px}.field-label{display:flex;align-items:center;justify-content:space-between;gap:3px;min-height:20px}.field-label .why-button{min-height:18px;height:18px;min-width:18px;width:18px;padding:0;font-size:11px;border-radius:50%;color:var(--muted);background:var(--soft);border-color:transparent}.field input,.field select{width:100%}.info-card .field{margin-bottom:13px}.info-card .field-label{font-size:.88rem;color:var(--muted)}.info-card input{font-size:.95rem}.field .calculated-note{font-size:11px;color:var(--muted);line-height:1.4}.error-text,.inline-error{color:var(--error);font-size:.82rem;line-height:1.35;margin:3px 0 0}.invalid,[aria-invalid=true]{border-color:var(--error)!important}.muted,.muted-note,.hint{color:var(--muted);font-size:.88rem;line-height:1.45}.hint{margin:7px 0}.notice{border-radius:10px;padding:10px 11px;background:var(--soft);font-size:.88rem;line-height:1.5}.warning-note{color:var(--warning)}.split-h{cursor:col-resize;position:relative}.split-h:after{content:'';position:absolute;left:2px;top:20%;height:60%;width:2px;border-radius:2px;background:transparent}.split-h:hover:after{background:var(--accent)}.right-editor{display:grid;grid-template-rows:minmax(190px,var(--sketch-h)) 6px minmax(155px,1fr);min-width:0;min-height:0}.split-v{cursor:row-resize;position:relative}.split-v:hover{background:color-mix(in srgb,var(--accent) 20%,transparent);border-radius:4px}.sketch-card{display:flex;flex-direction:column;padding:9px 11px 8px;overflow:hidden}.sketch-toolbar{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}.sketch-heading{display:flex;align-items:center;gap:8px;min-width:130px;flex:1;padding-top:3px}.sketch-heading h2{font-size:1rem;margin:0;white-space:nowrap}.status-badge{padding:5px 9px;border:1px solid var(--border);background:var(--soft);border-radius:9px;font-size:11px;white-space:nowrap}.status-badge.dirty{color:var(--warning)}.status-badge.deleted{color:var(--error)}.sketch-controls{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-left:auto;flex-wrap:wrap}.sketch-controls button{padding:5px 9px;min-height:32px;border-radius:11px;font-size:.87rem}.slider-control{display:flex;align-items:center;gap:5px;font-size:.86rem;white-space:nowrap}.slider-control input{width:92px}.slider-control output{min-width:16px}.sketch-holder{position:relative;min-height:100px;flex:1;overflow:hidden;border-radius:8px;margin-top:5px;background:var(--canvas)}#sketch-canvas{width:100%;height:100%;display:block;touch-action:none}.sketch-tooltip{position:absolute;z-index:6;max-width:320px;background:linear-gradient(var(--surface),var(--surface2));box-shadow:0 6px 22px #10243c30;border:1px solid var(--border);padding:9px 12px;border-radius:12px;pointer-events:none;font-size:12px;white-space:pre-line;line-height:1.5}.sketch-legend{display:flex;justify-content:center;gap:14px;min-height:23px;margin-top:2px;flex-wrap:wrap}.legend-item{display:inline-flex;align-items:center;gap:5px;font-size:11px;cursor:pointer;color:var(--muted)}.legend-item.active{font-weight:600;color:var(--text)}.legend-swatch{width:12px;height:10px;border-radius:3px}.compare-strip{display:flex;align-items:center;gap:6px;min-height:41px;border:1px solid var(--border);border-radius:11px;padding:4px;margin-top:3px;overflow:auto}.compare-strip .material-button{color:var(--accent);background:var(--soft);border-color:transparent;min-height:32px;padding:5px 10px;border-radius:9px;font-size:.9rem}.comparison-chip{display:flex;align-items:center;gap:5px;padding:4px 7px;background:var(--read);border-radius:8px;white-space:nowrap;font-size:12px}.comparison-chip .swatch{width:7px;height:7px;border-radius:50%}.comparison-chip button{padding:0;width:18px;min-height:20px;border:0;background:transparent;font-size:16px}.offset-field{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:.87rem;white-space:nowrap}.offset-field input{width:56px;min-height:30px;height:30px;padding:4px 6px;border-radius:8px}.points-card{display:flex;flex-direction:column;overflow:hidden;padding:11px 11px 9px}.points-header{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-shrink:0}.points-header p{font-size:.85rem;margin:0;color:var(--muted)}.points-options{display:flex;align-items:center;gap:14px;min-height:32px;margin:4px 0}.switch-label,.toggle-label{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:.9rem}.switch-label input,.toggle-label input{appearance:none;width:37px;min-width:37px;height:21px;min-height:21px;border:0;border-radius:20px;background:linear-gradient(#bdcbdc,#aebfd3);padding:0;position:relative;cursor:pointer;box-shadow:none}.switch-label input:before,.toggle-label input:before{content:'';position:absolute;left:3px;top:3px;width:15px;height:15px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0f284236;transition:left .15s}.switch-label input:checked,.toggle-label input:checked{background:linear-gradient(#6292ed,#3679ed)}.switch-label input:checked:before,.toggle-label input:checked:before{left:19px}.point-tabs,.tabbar,.tabs{display:flex;align-items:center;gap:5px;flex-shrink:0;margin:0 0 5px}.point-tabs button,.tabbar button,.tabs button{min-height:30px;padding:4px 15px;border-radius:11px;font-size:.9rem}.table-scroll,.table-wrap{overflow:auto;min-height:0;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.points-table-wrap{flex:1}.data-table,table{border-collapse:separate;border-spacing:0;width:100%;font-size:.92rem}.data-table th,table th{position:sticky;top:0;z-index:2;background:linear-gradient(var(--read),var(--surface2));color:var(--muted);font-size:.87rem;font-weight:600;text-align:left;border-bottom:1px solid var(--border);height:37px;padding:7px 9px;white-space:nowrap}.data-table td,table td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:6px 8px;white-space:nowrap}.data-table tr:nth-child(even)>td{background:var(--stripe)}.data-table tbody tr:hover>td{background:var(--soft)}table input,table select{min-height:29px;height:29px;padding:3px 5px;border-radius:5px;max-width:100%}.points-table{table-layout:fixed;min-width:1550px}.points-table th{text-align:center;border-right:1px solid var(--border)}.points-table th:first-child{width:115px;left:0;z-index:5}.points-table th:nth-child(2){width:48px;left:115px;z-index:5}.points-table td:first-child{position:sticky;left:0;z-index:3;background:var(--surface);width:115px;text-align:left;padding:4px 7px}.points-table td:nth-child(2){position:sticky;left:115px;z-index:3;background:var(--surface);font-weight:600;color:var(--muted);width:48px}.points-table td{padding:0;height:31px;text-align:center;background:var(--surface2)}.points-table tr:nth-child(even)>td{border-bottom:2px solid var(--border)}.points-table td.selected-cell{background:var(--soft)!important;box-shadow:inset 0 0 0 2px var(--accent)}.points-table td.range-cell{background:var(--soft)!important}.points-table input{display:block;width:100%;height:30px;min-height:30px;border:0;background:transparent;border-radius:0;box-shadow:none;text-align:center;padding:3px}.points-table input:focus{background:var(--soft);box-shadow:inset 0 0 0 2px var(--accent)}.points-table td.invalid{background:color-mix(in srgb,var(--error) 13%,var(--surface))!important}.statusbar{grid-column:2;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted);overflow:hidden;white-space:nowrap}.statusbar>span:first-child{overflow:hidden;text-overflow:ellipsis}.full-page{height:100%;overflow:auto;padding:15px}.empty-state{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);gap:14px;padding:30px}.empty-state .icon{width:40px;height:40px}.empty-state p{max-width:430px;line-height:1.6}.empty-state .row{display:flex;gap:9px}.row,.form-row,.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row.spread{justify-content:space-between}.grid-2,.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.toolbar-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:10px}.toolbar-row input{flex:1;min-width:150px}.dialog{border:1px solid var(--border);border-radius:22px;background:linear-gradient(130deg,var(--surface),var(--surface2));color:var(--text);padding:0;min-width:340px;max-width:min(1000px,94vw);max-height:92dvh;box-shadow:0 22px 85px #09172d4a;resize:both;overflow:hidden}.dialog.wide{width:min(1190px,95vw);max-width:95vw}.dialog::backdrop{background:#0d1c3b40;backdrop-filter:blur(4px)}.dialog-shell{display:flex;flex-direction:column;max-height:90dvh;min-height:0}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 20px 10px;flex-shrink:0}.dialog-header h2{margin:0;font-size:1.13rem}.dialog-content{padding:8px 20px 16px;overflow:auto;min-height:0;flex:1}.dialog-footer{display:flex;justify-content:flex-end;gap:8px;flex-shrink:0;border-top:1px solid var(--border);padding:12px 20px}.dialog-content>.data-table,.dialog-content>.table-scroll{margin:8px 0}.dialog-content .field{margin-bottom:11px}.dialog-content .table-scroll{max-height:57dvh}.dialog-content .wide-grid{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:16px}.dialog-content .section{margin:15px 0}.dialog-content hr{border:0;border-top:1px solid var(--border);margin:15px 0}.context-menu{position:fixed;z-index:1000;min-width:245px;border:1px solid var(--border);background:var(--surface);box-shadow:0 10px 35px #0c1d3630;border-radius:15px;padding:5px;max-height:85vh;overflow:auto}.context-menu button{display:flex;width:100%;justify-content:flex-start;background:transparent;border:0;border-radius:10px;font-size:.93rem;padding:8px 10px;min-height:33px}.context-menu button:hover{background:var(--soft)}.context-menu hr{margin:4px;border:0;border-top:1px solid var(--border)}.context-menu .separator-label{font-size:11px;color:var(--muted);padding:7px 9px 3px}.toast-stack{position:fixed;bottom:38px;right:20px;z-index:2000;display:flex;flex-direction:column;gap:8px;max-width:min(450px,85vw);pointer-events:none}.toast{border:1px solid var(--border);background:var(--surface);border-radius:14px;padding:12px 16px;box-shadow:0 9px 30px #1024402b;line-height:1.45;font-size:.93rem}.toast.error{border-color:var(--error);color:var(--error)}.toast.success{border-color:var(--success)}.loading{position:fixed;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;background:linear-gradient(130deg,var(--bg),var(--bg2))}.loading-card{width:min(580px,90vw);border:1px solid var(--border);background:linear-gradient(145deg,var(--surface),var(--read));border-radius:27px;padding:28px 32px;box-shadow:0 20px 60px #21395417}.loading-top,.loading-bottom{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:13px}.loading-card h1{text-align:center;font-size:29px;font-weight:600;letter-spacing:-.8px;margin:4px 0 33px}.loading-figure{width:100%;height:210px;overflow:visible}.loading-figure .cap{animation:capshift 4.8s ease-in-out infinite;transform-origin:center}.loading-figure .base{animation:baseshift 4.8s ease-in-out infinite}.loading-figure .ut{animation:utshift 4.8s ease-in-out infinite}.loading-line{height:6px;background:var(--border);border-radius:6px;overflow:hidden;margin-top:12px}.loading-line i{display:block;width:7%;height:100%;border-radius:6px;background:linear-gradient(90deg,#75a0ff,#2464df);transition:width .3s}.loading-error{color:var(--error);white-space:pre-wrap;line-height:1.5;margin-top:12px}.loading-error button{margin:9px 0}.loading-kind{font-size:11px;text-align:center;color:var(--muted);margin-top:7px}@keyframes capshift{0%,100%{transform:translate(0,0)}35%,65%{transform:translate(12px,-12px)}}@keyframes baseshift{0%,100%{transform:translate(0,0)}35%,65%{transform:translate(0,0)}}@keyframes utshift{0%,100%{transform:translate(0,0)}35%,65%{transform:translate(-12px,7px)}}.print-preview{width:100%;background:#fff;border:1px solid var(--border);border-radius:5px;color:#172638}.print-preview svg{width:100%;height:auto;display:block}.metric-pill{border-radius:10px;padding:7px 10px;background:var(--read);font-size:13px}.dirty-warning{color:var(--warning)}.explanation-text{white-space:pre-wrap;font:13px/1.6 'Segoe UI',sans-serif;background:var(--read);padding:13px;border-radius:12px}.template-panel{height:100%;min-height:0}.badge{display:inline-block;padding:3px 7px;border-radius:8px;background:var(--soft);font-size:11px}.resizable-table th{resize:horizontal;overflow:auto;min-width:65px}.settings-list{display:flex;flex-direction:column;gap:12px}.settings-item{display:flex;justify-content:space-between;align-items:center;gap:12px}.settings-item>label{flex:1}.material-stats{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.table-note{white-space:normal;min-width:160px;color:var(--muted);font-size:.85rem}.button-group{display:flex;gap:6px;flex-wrap:wrap}.floating-measure{position:absolute;bottom:12px;left:15px;padding:7px 10px;border:1px solid var(--border);border-radius:11px;background:var(--surface);font-size:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.data-table td.changed,.data-table tr.changed>td{background:var(--soft);font-weight:600}.data-table tr.total>td{font-weight:600;border-top:1px solid var(--border)}.data-table tr.selected>td{background:var(--soft)}.dialog-stack{display:flex;flex-direction:column;gap:10px}.library-search-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:9px}.gum-types{display:flex;gap:8px;flex-wrap:wrap}.recent-list{display:flex;flex-direction:column;gap:7px}.recent-button{justify-content:flex-start;white-space:normal;text-align:left}
@media(max-width:1200px){:root{--general-w:240px;--info-w:175px}.toolbar button{font-size:12px;padding:6px 8px}.toolbar{gap:4px}.sketch-controls{gap:4px}.slider-control input{width:70px}.sketch-heading{width:100%;padding-top:0}.editor-grid{grid-template-columns:minmax(210px,var(--general-w)) 5px minmax(155px,var(--info-w)) 5px minmax(350px,1fr)}.general-card,.info-card{padding:12px 10px}.sketch-controls{width:100%}}
@media(max-width:900px){#app{grid-template-columns:47px minmax(0,1fr);grid-template-rows:57px 36px minmax(0,1fr) 23px;gap:4px}.rail{padding:4px}.editor-grid{grid-template-columns:210px 5px minmax(350px,1fr);overflow:auto}.editor-grid .info-card,.editor-grid .info-split{display:none}.toolbar{border-radius:15px}.toolbar .toolbar-spacer{display:none}.toolbar button{flex-shrink:0}.toolbar button[data-action=save]{min-width:140px}.sketch-controls .slider-control{font-size:11px}.dialog-content .wide-grid{grid-template-columns:1fr}.dialog-content{padding:7px 14px 13px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{body{background:#fff!important;overflow:visible!important}#app,.dialog,.toast-stack,.loading,.context-menu{display:none!important}#print-document{display:block!important;margin:0;padding:0;width:297mm;height:210mm}#print-document svg{width:297mm;height:210mm;display:block} @page{size:A4 landscape;margin:0}}
