.geo-page{--geo-primary:#5141b5;--geo-ink:#292643;--geo-muted:#626078;--geo-border:#e4e1ef;--geo-soft:#f3f1fc;--geo-card:#fff;--geo-success:#08785f;padding:28px 24px 22px;background:radial-gradient(ellipse at 90% 0,#eae6ff 0,transparent 38%),#f8f7fc;color:var(--geo-ink)}.geo-page *,.geo-page ::after,.geo-page ::before{box-sizing:border-box}.geo-container{max-width:1520px;margin:0 auto}.geo-page button,.geo-page input,.geo-page select{font:inherit}.geo-page button,.geo-page select,.geo-page summary{cursor:pointer}.geo-page button,.geo-page input,.geo-page select{min-height:44px;min-width:44px}.geo-page :is(button,input,select,summary,a):focus-visible{outline:3px solid var(--geo-primary);outline-offset:3px}.geo-page [hidden]{display:none!important}.geo-page button{transition:background .15s,border-color .15s}.geo-page button:disabled{opacity:.42;cursor:not-allowed}.geo-header{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:25px}.geo-back{display:inline-block;color:var(--geo-muted);font-size:.82rem;text-decoration:none;padding:4px 0;margin-bottom:20px}.geo-back:hover{color:var(--geo-primary);text-decoration:underline}.geo-eyebrow{color:var(--geo-primary);font-size:.73rem;letter-spacing:.13em;text-transform:uppercase;font-weight:800;margin:0 0 8px}.geo-title{font-size:clamp(1.85rem, 3vw, 2.8rem);line-height:1.15;letter-spacing:-.04em;color:var(--geo-ink);margin:0 0 12px}.geo-title span{color:var(--geo-primary)}.geo-subtitle{color:var(--geo-muted);font-size:.96rem;margin:0;line-height:1.6}.geo-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:17px}.geo-tags span{padding:5px 10px;border:1px solid var(--geo-border);border-radius:7px;font-size:.72rem;background:var(--geo-card);color:var(--geo-muted)}.geo-hero-figure{width:240px;flex-shrink:0;padding:8px;color:var(--geo-primary);transform:rotate(3deg)}.geo-hero-figure svg{display:block;width:100%;height:auto}.geo-hero-figure>span{display:block;text-align:center;font-size:.69rem;letter-spacing:.06em;margin-top:3px}.geo-workspace-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.geo-workspace-heading>div{display:flex;align-items:center;flex-wrap:wrap;gap:9px;font-size:.88rem}.geo-status-dot{width:8px;height:8px;border-radius:50%;background:var(--geo-success);box-shadow:0 0 0 4px #08785f15}.geo-session-tag{color:var(--geo-muted);font-size:.73rem;padding-left:6px}.geo-tableau-btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;background:var(--geo-primary);color:#fff;border:0;border-radius:10px;padding:9px 15px;font-size:.82rem!important;font-weight:700!important}.geo-main{display:grid;grid-template-columns:208px minmax(0,1fr) 280px;gap:14px;align-items:start}.geo-instructions,.geo-tools{background:var(--geo-card);border:1px solid var(--geo-border);border-radius:17px;padding:16px;min-width:0}.geo-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.geo-panel-heading h2{font-size:.95rem;font-weight:800;margin:0;color:var(--geo-ink)}.geo-panel-heading>span{font-size:.68rem;color:var(--geo-primary);background:var(--geo-soft);border-radius:6px;padding:3px 6px;font-weight:800}.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.geo-page .tool-btn{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;padding:10px 3px;border:1px solid var(--geo-border);border-radius:10px;color:var(--geo-muted);background:var(--geo-card);font-size:.7rem;font-weight:700;min-height:63px}.geo-page .tool-btn>i{font-size:1.12rem}.geo-page .tool-btn:hover{border-color:var(--geo-primary);color:var(--geo-primary)}.geo-page .tool-btn.active{background:var(--geo-soft);border-color:var(--geo-primary);color:var(--geo-primary);box-shadow:inset 0 0 0 1px var(--geo-primary)}.geo-settings{border-top:1px solid var(--geo-border);margin-top:16px;padding-top:5px}.geo-page summary{min-height:44px;align-content:center;font-size:.79rem;font-weight:700;color:var(--geo-ink);padding:9px 0}.color-options{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:6px 0}.geo-page .color-btn{width:44px;height:44px;padding:6px;background:var(--swatch);border:5px solid var(--geo-card);border-radius:50%;justify-self:center}.geo-page .color-btn.active{outline:2px solid var(--geo-primary);outline-offset:1px}.thickness-options{display:flex;gap:4px;margin:8px 0}.geo-page .thickness-btn{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:6px 2px;border:1px solid var(--geo-border);border-radius:7px;background:var(--geo-card);color:var(--geo-muted);font-size:.62rem}.geo-page .thickness-btn.active{border-color:var(--geo-primary);background:var(--geo-soft);color:var(--geo-primary)}.thickness-line{display:block;width:25px;background:currentColor}.geo-zoom{border-top:1px solid var(--geo-border);margin-top:10px;padding-top:15px}.geo-page label{display:block;font-size:.74rem;font-weight:700;margin:0 0 6px;color:var(--geo-ink)}.geo-zoom label{display:flex;justify-content:space-between;gap:4px}.geo-zoom output{font-size:.68rem;color:var(--geo-primary)}.grid-size-control{display:flex;align-items:center;gap:8px}.geo-page .grid-slider{flex:1;width:0;accent-color:var(--geo-primary);background:0 0;cursor:pointer}.grid-size-label{font-size:.7rem;color:var(--geo-muted);white-space:nowrap}.geo-precision p,.geo-zoom p{font-size:.69rem;color:var(--geo-muted);line-height:1.6;margin:3px 0}.geo-precision-row{display:flex;gap:6px}.geo-precision-row input{width:0;flex:1}.geo-precision-row button{border:1px solid var(--geo-border);border-radius:8px;background:var(--geo-soft);color:var(--geo-primary);padding:7px;font-size:.75rem;font-weight:700}.geo-page input[type=number],.geo-page select{border:1px solid var(--geo-border);border-radius:8px;padding:9px;color:var(--geo-ink);background:var(--geo-card);font-size:.8rem}.geo-page select{width:100%;margin-bottom:12px}.geo-precision p[role=status]:empty{display:none}.geo-canvas-area{min-width:0;overflow:hidden;background:var(--geo-card);border:1px solid var(--geo-border);border-radius:17px;box-shadow:0 12px 40px #3424680a}.canvas-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;padding:8px;border-bottom:1px solid var(--geo-border)}.canvas-toolbar-left,.canvas-toolbar-right{display:flex;flex-wrap:wrap;align-items:center;gap:3px}.geo-page .canvas-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:8px;padding:8px;color:var(--geo-muted);background:0 0;font-size:.7rem}.geo-page .canvas-toolbar-btn:hover:not(:disabled){color:var(--geo-primary);background:var(--geo-soft)}.geo-page .canvas-toolbar-btn.active{background:var(--geo-soft);color:var(--geo-primary);border-color:var(--geo-border)}.geo-page .canvas-toolbar-btn.geo-export{background:var(--geo-primary);color:#fff;padding-inline:12px}.geo-tool-help{display:flex;align-items:center;gap:10px;padding:10px 14px;min-height:73px;background:var(--geo-soft);border-bottom:1px solid var(--geo-border)}.geo-tool-help-icon{flex-shrink:0;display:grid;place-items:center;width:33px;height:33px;background:var(--geo-card);border:1px solid var(--geo-border);border-radius:9px;color:var(--geo-primary)}.geo-tool-help strong{display:block;font-size:.78rem;line-height:1.5}.geo-tool-help p{color:var(--geo-muted);font-size:.73rem;line-height:1.5;margin:0}.canvas-wrapper{position:relative;width:100%;height:520px;background:#fff;cursor:crosshair;touch-action:none}#geoCanvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}#geoCanvas:focus-visible{outline:3px solid #a15c00;outline-offset:-3px}.geo-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.geo-canvas-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;border-top:1px solid var(--geo-border);padding:3px 12px;font-size:.69rem;color:var(--geo-muted)}.geo-canvas-footer button{border:0;background:0 0;color:var(--geo-primary);padding:6px 0;font-size:.69rem;font-weight:700;text-decoration:underline;text-underline-offset:3px}.geo-panel-intro{font-size:.76rem;line-height:1.65;color:var(--geo-muted);margin:0 0 15px}.geo-guide-note{font-size:.72rem;color:var(--geo-muted);line-height:1.6;margin:0 0 12px}.geo-quick-start{display:flex;gap:7px}.geo-quick-start button{flex:1;display:flex;gap:7px;align-items:center;justify-content:center;background:var(--geo-soft);color:var(--geo-primary);border:1px solid var(--geo-border);border-radius:8px;padding:8px 5px;font-size:.71rem;font-weight:700}.step-list{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow-y:auto;overscroll-behavior:contain;padding:3px;margin:12px -3px 0}.step-empty{text-align:center;color:var(--geo-muted);padding:22px 8px}.step-empty>span{display:block;color:var(--geo-primary);font-size:1.8rem;letter-spacing:.1em;margin-bottom:18px}.step-empty p{font-size:.8rem;line-height:1.5;margin:0 0 8px}.step-empty small{display:block;font-size:.71rem;line-height:1.6}.step-item{border:1px solid var(--geo-border);border-radius:10px;padding:11px}.step-item.current{border-color:var(--geo-primary);background:var(--geo-soft);box-shadow:inset 3px 0 var(--geo-primary)}.step-item.completed{background:#08785f08}.step-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.step-number{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;font-size:.69rem;background:var(--geo-soft);color:var(--geo-primary);flex-shrink:0;font-weight:800}.step-item.current .step-number{background:var(--geo-primary);color:#fff}.step-item.completed .step-number{background:var(--geo-success);color:#fff}.step-tool{color:var(--geo-muted);font-size:.69rem}.step-instruction{font-size:.77rem;line-height:1.65;color:var(--geo-ink)}.geo-use-tool{display:inline-flex;align-items:center;gap:7px;border:0;background:var(--geo-card);color:var(--geo-primary);font-size:.73rem!important;border-radius:7px;padding:7px 10px;margin-top:8px}.geo-guide-progress>p{font-size:.72rem;color:var(--geo-muted);margin:14px 0 6px}.progress-bar{height:6px;border-radius:4px;background:var(--geo-border);overflow:hidden}.progress-fill{width:0;height:100%;border-radius:4px;background:var(--geo-primary);transition:width .2s}.geo-page .geo-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border:0;border-radius:9px;padding:11px;margin-top:12px;background:var(--geo-soft);color:var(--geo-ink);font-size:.78rem;font-weight:700}.geo-page .geo-btn-primary{background:var(--geo-primary);color:#fff}.geo-page .geo-btn-success{background:var(--geo-success);color:#fff}.geo-bottom-notes{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}.geo-bottom-notes details{border:1px solid var(--geo-border);border-radius:12px;background:var(--geo-card);padding:4px 16px}.geo-bottom-notes summary{font-size:.8rem}.geo-bottom-notes summary i{margin-right:7px;color:var(--geo-primary)}.geo-bottom-notes p{font-size:.79rem;line-height:1.8;color:var(--geo-muted);margin:6px 0 12px}.geo-bottom-notes a{color:var(--geo-primary);text-decoration:underline}.geo-privacy{display:flex;align-items:baseline;justify-content:center;gap:8px;font-size:.72rem;color:var(--geo-muted);margin:19px 0 0;line-height:1.65}.geo-privacy i{color:var(--geo-success)}.geo-page .validation-feedback{max-width:min(560px,calc(100% - 24px))}.geo-page .feedback-content.success{background:#08785f}.geo-page .feedback-content.error{background:#875400}.geo-page .completion-content{background:var(--geo-card);border:1px solid var(--geo-border);max-width:min(430px,calc(100vw - 32px))}.geo-page .completion-content h2,.geo-page .completion-content p{color:var(--geo-ink)}.geo-page .completion-actions{flex-wrap:wrap}.geo-page.geometry-tableau{position:fixed;inset:0;z-index:100000;width:100%;height:100dvh;min-height:0;margin:0;padding:10px;display:flex;flex-direction:column;gap:8px;overflow:hidden;background:var(--geo-soft)}.geo-page.geometry-tableau .geo-bottom-notes,.geo-page.geometry-tableau .geo-header,.geo-page.geometry-tableau .geo-privacy,.geo-page.geometry-tableau .geo-workspace-heading{display:none}.geo-page.geometry-tableau>.geo-container{flex:1;min-height:0;width:100%;max-width:none;display:flex;flex-direction:column}.geo-page.geometry-tableau .geo-main{flex:1;min-height:0;align-items:stretch;grid-template-columns:195px minmax(0,1fr) 270px}.geo-page.geometry-tableau .geo-instructions,.geo-page.geometry-tableau .geo-tools{min-height:0;overflow-y:auto}.geo-page.geometry-tableau .geo-canvas-area{display:flex;flex-direction:column;min-height:0}.geo-page.geometry-tableau #canvas-wrapper{height:0;min-height:100px;flex:1}.geo-page.geometry-controls-closed .geo-main{grid-template-columns:minmax(0,1fr)}.geo-page.geometry-tableau .canvas-toolbar,.geo-page.geometry-tableau .geo-canvas-footer,.geo-page.geometry-tableau .geo-tool-help{flex-shrink:0}[data-theme=dark] .geo-page{--geo-primary:#c2b7ff;--geo-ink:#ece9fa;--geo-muted:#b8b2cf;--geo-border:#413b59;--geo-soft:#302a45;--geo-card:#231e33;--geo-success:#75dec4;background:radial-gradient(ellipse at 90% 0,#352950,transparent 45%),#191522}[data-theme=dark] .geo-page .step-item.current .step-number,[data-theme=dark] .geo-page :is(.geo-tableau-btn,.geo-btn-primary,.canvas-toolbar-btn.geo-export){color:#241942}[data-theme=dark] .geo-page .geo-btn-success,[data-theme=dark] .geo-page .step-item.completed .step-number{color:#10372d}@media (max-width:1200px){.geo-main{grid-template-columns:190px minmax(0,1fr)}.geo-instructions{grid-column:1/-1}.step-list{max-height:300px}.geo-quick-start{max-width:350px}.geo-page.geometry-tableau .geo-main{grid-template-columns:190px minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.geo-page.geometry-tableau .geo-tools{grid-column:1;grid-row:1}.geo-page.geometry-tableau .geo-instructions{grid-column:1;grid-row:2}.geo-page.geometry-tableau .geo-canvas-area{grid-column:2;grid-row:1/-1}.geo-page.geometry-controls-closed .geo-main{grid-template-columns:minmax(0,1fr)}.geo-page.geometry-controls-closed .geo-canvas-area{grid-column:1}}@media (max-width:700px){.geo-page{padding:18px 12px}.geo-header{margin-bottom:20px}.geo-hero-figure{display:none}.geo-back{margin-bottom:16px}.geo-title span{display:block}.geo-title{font-size:2rem}.geo-tags{gap:5px}.geo-tags span{font-size:.63rem}.geo-workspace-heading{align-items:flex-start}.geo-workspace-heading>div{max-width:55%;font-size:.76rem}.geo-session-tag{padding:0 0 0 17px}.geo-tableau-btn{padding:8px;font-size:.71rem!important}.geo-main{display:flex;flex-direction:column;gap:12px}.geo-main>*{width:100%}.geo-tools{padding:12px}.geo-tools .geo-panel-heading{margin-bottom:10px}.tool-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.geo-page .tool-btn{font-size:.59rem;min-height:60px;padding:8px 1px}.geo-page .tool-btn i{font-size:1rem}.geo-tools .geo-settings{margin-top:6px}.color-options{grid-template-columns:repeat(6,minmax(0,1fr));gap:0}.geo-zoom{margin-top:4px;padding-top:10px}.geo-zoom p{font-size:.67rem}.geo-canvas-area{border-radius:13px}.canvas-wrapper{height:380px}.canvas-toolbar{gap:4px;padding:6px}.canvas-toolbar-right{flex:1 1 auto;justify-content:flex-end}.geo-tool-help{padding:10px;min-height:90px}.geo-tool-help p{font-size:.7rem}.geo-bottom-notes{grid-template-columns:1fr;gap:9px}.geo-privacy{justify-content:flex-start}.geo-page.geometry-tableau{overflow-y:auto}.geo-page.geometry-tableau>.geo-container{flex:none}.geo-page.geometry-tableau .geo-main{display:flex}.geo-page.geometry-tableau .geo-canvas-area{order:-1}.geo-page.geometry-tableau #canvas-wrapper{flex:none;height:52dvh;min-height:240px}.geo-page.geometry-controls-closed #canvas-wrapper{height:calc(100dvh - 255px)}.geo-page.geometry-tableau .geo-instructions,.geo-page.geometry-tableau .geo-tools{overflow:visible}}@media (prefers-reduced-motion:reduce){.geo-page *,.geo-page ::after,.geo-page ::before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.geo-point-label{margin-top:12px}