/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.container{width:100%}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.max-h-\[90vh\]{max-height:90vh}.flex-1{flex:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.overflow-y-auto{overflow-y:auto}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.text-center{text-align:center}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}:root{--font-scale:1;--color-slate-50:#f8fafc;--color-slate-100:#f1f5f9;--color-slate-200:#e2e8f0;--color-slate-300:#cbd5e1;--color-slate-400:#94a3b8;--color-slate-500:#64748b;--color-slate-600:#475569;--color-slate-700:#334155;--color-slate-800:#1e293b;--color-slate-900:#0f172a;--color-blue-300:#93c5fd;--color-blue-400:#60a5fa;--color-blue-500:#3b82f6;--color-blue-600:#2563eb;--color-blue-700:#1d4ed8;--color-green-500:#22c55e;--color-amber-500:#f59e0b;--color-red-500:#ef4444;--color-cyan-500:#00e5ff;--bg-primary:var(--color-slate-900);--bg-secondary:var(--color-slate-800);--bg-tertiary:var(--color-slate-700);--bg-glass:#ffffff0d;--bg-glass-strong:#ffffff1a;--text-primary:var(--color-slate-100);--text-secondary:var(--color-slate-300);--text-tertiary:var(--color-slate-400);--text-accent:var(--color-blue-600);--text-xs-raw:.75rem;--text-sm-raw:.875rem;--text-base-raw:1rem;--text-lg-raw:1.125rem;--text-xl-raw:1.25rem;--text-2xl-raw:1.5rem;--text-xs:calc(var(--text-xs-raw)*var(--font-scale-effective,var(--font-scale)));--text-sm:calc(var(--text-sm-raw)*var(--font-scale-effective,var(--font-scale)));--text-base:calc(var(--text-base-raw)*var(--font-scale-effective,var(--font-scale)));--text-lg:calc(var(--text-lg-raw)*var(--font-scale-effective,var(--font-scale)));--text-xl:calc(var(--text-xl-raw)*var(--font-scale-effective,var(--font-scale)));--text-2xl:calc(var(--text-2xl-raw)*var(--font-scale-effective,var(--font-scale)));--font-normal:400;--font-medium:500;--font-semibold:600;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--size-button-sm:2.5rem;--size-button-md:3rem;--size-icon-xs:.625rem;--size-icon-sm:.75rem;--size-icon-md:1.75rem;--size-panel-width:33.75rem;--size-panel-width-md:32.5rem;--size-input-width-sm:3.125rem;--size-input-width-md:4.375rem;--size-input-width-lg:6.25rem;--size-input-width-xl:7.5rem;--radius-sm:.25rem;--radius:.5rem;--radius-lg:.75rem;--shadow-sm:0 1px 2px 0 #0000000d;--shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--transition-fast:.15s ease-out;--transition-normal:.2s ease-out;--transition-slow:.3s ease-out;--z-dropdown:1000;--z-modal:1050;--z-popover:1100;--z-tooltip:1200}html.theme-light{--bg-primary:#f7fafc;--bg-secondary:#fff;--bg-tertiary:#f3f4f6;--bg-glass:#00000008;--bg-glass-strong:#0000000f;--text-primary:#1f2937;--text-secondary:#4b5563;--text-tertiary:#6b7280;--text-accent:var(--color-blue-600);--border-color:#e5e7eb;--pill-bg:#ffffffeb;--pill-text:#1f2937;--pill-border:#00000014;--pill-hover-bg:#fffffffa;--workspace-bg:#e5e7eb;--panel-bg:#fff;--panel-text:#1f2937;--panel-border:#e5e7eb}html.theme-dark{--bg-primary:var(--color-slate-900);--bg-secondary:var(--color-slate-800);--bg-tertiary:var(--color-slate-700);--bg-glass:#ffffff0d;--bg-glass-strong:#ffffff1a;--text-primary:var(--color-slate-100);--text-secondary:var(--color-slate-300);--text-tertiary:var(--color-slate-400);--text-accent:var(--color-blue-500);--border-color:var(--color-slate-700);--pill-bg:#0f172ae0;--pill-text:var(--color-slate-100);--pill-border:#ffffff2e;--pill-hover-bg:#1e293beb;--workspace-bg:#2b2b2b;--panel-bg:#2b2b2b;--panel-text:#f1f5f9;--panel-border:#3a3a3a}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:var(--text-base);font-weight:var(--font-normal);color:var(--text-primary);background-color:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;height:100vh;line-height:1.6;display:flex;overflow:hidden}#root{flex-direction:column;flex:1;min-height:0;display:flex}.panel-base{background:var(--bg-glass);-webkit-backdrop-filter:blur(12px);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:var(--space-4);border:1px solid #ffffff1a}.panel-glass{background:var(--bg-glass-strong);-webkit-backdrop-filter:blur(16px);border-radius:var(--radius);box-shadow:var(--shadow-xl);border:1px solid #ffffff26}.btn-base{padding:var(--space-2)var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-normal);border:none;outline:none;justify-content:center;align-items:center;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn-primary{background-color:var(--color-blue-500);color:#fff}.btn-primary:hover{background-color:var(--color-blue-600);transform:translateY(-1px)}.btn-primary:active{background-color:var(--color-blue-700);transform:translateY(0)}.btn-secondary{color:var(--text-secondary);border:1px solid var(--color-slate-600);background-color:#0000}.btn-secondary:hover{background-color:var(--bg-glass);color:var(--text-primary);border-color:var(--color-slate-500)}.btn-ghost{background-color:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--color-slate-600);box-shadow:var(--shadow-sm)}.btn-ghost:hover{background-color:var(--bg-glass-strong);color:var(--text-primary);border-color:var(--color-slate-500);box-shadow:var(--shadow);transform:translateY(-1px)}.btn-icon{padding:var(--space-2);border-radius:var(--radius-sm);width:2rem;height:2rem}.btn-active{background-color:var(--color-blue-500);color:#fff;border:2px solid var(--color-blue-400);box-shadow:0 0 0 3px #3b82f64d,var(--shadow-lg);font-weight:var(--font-semibold);transform:translateY(-2px)}.btn-active:hover{background-color:var(--color-blue-600);border-color:var(--color-blue-300);box-shadow:0 0 0 4px #3b82f666,var(--shadow-xl)}.btn-disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-accent{color:var(--text-accent)}.space-y-1>*+*{margin-top:var(--space-1)}.space-y-2>*+*{margin-top:var(--space-2)}.space-y-3>*+*{margin-top:var(--space-3)}.space-y-4>*+*{margin-top:var(--space-4)}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.toolbar{z-index:var(--z-dropdown);justify-content:center;align-items:center;gap:var(--space-2);white-space:nowrap;-webkit-backdrop-filter:none;width:auto;box-shadow:none;color:var(--text-primary);background:0 0;border:none;flex-wrap:nowrap;margin:0;padding:0;display:flex;position:fixed;top:12px;left:50%;overflow:visible;transform:translate(-50%)}.toolbar-section{gap:var(--space-1);align-items:center;display:flex}.toolbar-section+.toolbar-section{margin-left:var(--space-4)}.coordinates-section{justify-content:center;min-width:200px}.coordinates-display{padding:var(--space-1)var(--space-2);border-radius:var(--radius-sm);align-items:center;gap:var(--space-1);font-family:Monaco,Menlo,Consolas,monospace;font-size:var(--text-xs);background:#0000004d;border:1px solid #fff3;display:flex}.coordinates-value{color:var(--text-accent);font-weight:var(--font-medium)}.toolbar button{background:var(--pill-bg);border:1px solid var(--pill-border);color:var(--pill-text);padding:var(--space-2)var(--space-3);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast);border-radius:16px;outline:none;justify-content:center;align-items:center;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.toolbar button:hover{background:var(--pill-hover-bg);border-color:var(--pill-border);color:var(--pill-text);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.toolbar .btn-base{padding:var(--space-2)var(--space-3);border-radius:16px}.toolbar select,.toolbar input[type=text],.toolbar input[type=number]{background:var(--pill-bg);border:1px solid var(--pill-border);color:var(--pill-text);font-size:var(--text-sm);border-radius:16px;padding:6px 10px}.toolbar select:focus,.toolbar input[type=text]:focus,.toolbar input[type=number]:focus{border-color:var(--pill-border);outline:none;box-shadow:0 0 0 3px #3b82f626}.toolbar .view-toggle-btn{background:var(--pill-bg);border:1px solid var(--pill-border);color:var(--pill-text);border-radius:16px}.toolbar .view-toggle-btn:hover{background:var(--pill-hover-bg)}.toolbar label{background:var(--pill-bg);border:1px solid var(--pill-border);color:var(--pill-text);font-size:var(--text-sm);border-radius:16px;padding:6px 10px}.toolbar button:active{transform:translateY(0)}.toolbar button.active{background:var(--color-blue-500);border-color:var(--color-blue-500);color:#fff;box-shadow:var(--shadow)}.toolbar button:disabled{opacity:.5;cursor:not-allowed;transform:none}.toolbar button:disabled:hover{background:#ffffff0d;border-color:#ffffff1a;transform:none}.toolbar .grid-toggle.available{color:var(--color-green-500);border-color:#22c55e4d}.toolbar .grid-toggle.active{background:var(--color-green-500);border-color:var(--color-green-500);color:#fff}.toolbar .grid-toggle.disabled{opacity:.3}.toolbar button.has-labels{color:var(--color-amber-500);background:#fbbc051a;border-color:#fbbc054d}.toolbar .file-input{display:none}.toolbar #coordinates-display{padding:var(--space-1)var(--space-2);border-radius:var(--radius-sm);font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:var(--text-xs);color:var(--text-tertiary);background:#0003}.view-toggle-section{gap:var(--space-1);flex-wrap:nowrap}.view-toggle-btn{padding:var(--space-2)var(--space-3);background:var(--bg-glass);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);transition:all var(--transition-fast);-webkit-user-select:none;-moz-user-select:none;user-select:none;text-shadow:0 1px 2px #00000080;border:1px solid #fff3}.view-toggle-btn:hover{border-color:var(--color-blue-500);background:var(--bg-glass-strong);transform:translateY(-1px)}.view-toggle-btn.active{border-color:var(--color-blue-500);background:var(--color-blue-500);color:#fff;box-shadow:var(--shadow)}.view-toggle-btn:disabled{opacity:.5;cursor:not-allowed;color:var(--text-tertiary)}.view-toggle-btn:disabled:hover{background:var(--bg-glass);border-color:#fff3;transform:none}.grid-interval-controls{gap:var(--space-2);margin-left:var(--space-2);display:flex}.grid-interval-input{align-items:center;gap:var(--space-1);display:flex}.grid-interval-input label{font-size:var(--text-xs);color:var(--text-secondary);font-weight:var(--font-medium);white-space:nowrap}.grid-interval-input input{width:50px;padding:var(--space-1);font-size:var(--text-xs);background:var(--bg-glass);border-radius:var(--radius-sm);color:var(--text-primary);text-align:center;border:1px solid #fff3}.grid-interval-input input:focus{border-color:var(--color-blue-500);background:var(--bg-glass-strong);outline:none}.main-container{flex:1;display:flex;overflow:hidden}.sidebar{background:var(--bg-secondary);width:280px;color:var(--text-primary);padding:var(--space-4);border-right:1px solid var(--color-slate-700);overflow-y:auto}.workspace{background:var(--workspace-bg);flex:1;padding:200px;display:block;position:relative;overflow:hidden}.canvas-group-wrapper{display:inline-block;position:relative}#pdf-container{position:relative}#pdf-container canvas{box-shadow:var(--shadow-xl);display:block}#canvas-container{pointer-events:none;position:absolute;top:0;left:0}#canvas-container.drawing-mode{pointer-events:all}.form-group{margin-bottom:var(--space-4)}label{margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary);display:block}input,select{width:100%;padding:var(--space-3);border:1px solid var(--color-slate-600);border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-primary);font-size:var(--text-sm);transition:border-color var(--transition-fast)}input:focus,select:focus{border-color:var(--color-blue-500);outline:none;box-shadow:0 0 0 3px #3b82f61a}.file-input{display:none}.section-title{font-weight:var(--font-semibold);font-size:var(--text-sm);margin:var(--space-4)0 var(--space-2)0;padding-bottom:var(--space-2);border-bottom:1px solid var(--color-slate-600);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.masonry-item{padding:var(--space-2)0;cursor:pointer;border-radius:var(--radius-sm);transition:background-color var(--transition-fast);justify-content:space-between;display:flex}.masonry-item:hover{background-color:var(--bg-glass)}.takeoff-results{margin-top:var(--space-4);padding:var(--space-4);background:var(--bg-tertiary);border-radius:var(--radius);border:1px solid var(--color-slate-600)}.result-item{margin-bottom:var(--space-2);font-size:var(--text-sm);justify-content:space-between;display:flex}.status-message{background:var(--bg-glass-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--text-primary);padding:var(--space-3)var(--space-4);border-radius:var(--radius);box-shadow:var(--shadow-lg);font-size:var(--text-sm);border:1px solid #ffffff1a;display:none;position:absolute;bottom:80px;left:50%;transform:translate(-50%)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}:root{--focus-ring: 0 0 0 3px rgba(59, 130, 246, .5)}[data-ui-root]{-moz-user-select:none;user-select:none;-webkit-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}[data-ui-root] input,[data-ui-root] textarea,[data-ui-root] select,[data-ui-root] [contenteditable=true],[data-ui-root] .selectable{-moz-user-select:text;user-select:text;-webkit-user-select:text}.noselect{-moz-user-select:none!important;user-select:none!important;-webkit-user-select:none!important;-ms-user-select:none!important}.selectable{-moz-user-select:text!important;user-select:text!important;-webkit-user-select:text!important}[data-ui-root] img{-webkit-user-drag:none;user-drag:none}[data-ui-root] .overlay{overscroll-behavior:contain}[data-ui-root] button,[data-ui-root] .toolbar,[data-ui-root] .sidebar,[data-ui-root] .menu,[data-ui-root] .controls,[data-ui-root] .panel{-moz-user-select:none;user-select:none;-webkit-user-select:none}[role=dialog]{-moz-user-select:none;user-select:none;-webkit-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}[role=dialog] input,[role=dialog] textarea,[role=dialog] select,[role=dialog] [contenteditable=true],[role=dialog] .selectable{-moz-user-select:text;user-select:text;-webkit-user-select:text}
