.app-bootstrap{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:#68645d;font-family:Trebuchet MS,Segoe UI,sans-serif}.app-bootstrap-spinner{width:32px;height:32px;border-radius:50%;border:3px solid #d5cdbc;border-top-color:#c24d2c;animation:app-bootstrap-spin .9s linear infinite}@keyframes app-bootstrap-spin{to{transform:rotate(360deg)}}:root{color-scheme:light;font-family:Trebuchet MS,Segoe UI,sans-serif;background:#eeebe3;color:#1f2421;--ink: #1f2421;--muted: #68645d;--paper: #fffdf7;--paper-deep: #f6f1e7;--line: #d5cdbc;--accent: #c24d2c;--accent-dark: #8e341f;--steel: #59656f;--success: #306b48;--danger: #a33a33;--shadow: 0 18px 50px rgba(31, 36, 33, .13)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(135deg,rgba(194,77,44,.11),transparent 33%),linear-gradient(0deg,rgba(31,36,33,.035) 1px,transparent 1px),#eeebe3;background-size:auto,100% 12px,auto}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}.app-shell{width:min(1440px,100%);margin:0 auto;padding:22px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 0 24px}.topbar h1,.panel-heading h2,.list-header h2,.settings-heading h2{margin:0;letter-spacing:0}.topbar h1{font-size:clamp(2rem,6vw,4.6rem);line-height:.9;font-weight:900}.eyebrow{margin:0 0 7px;color:var(--accent-dark);font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.topbar-actions,.row-actions,.summary-strip{display:flex;align-items:center;gap:10px}.button,.icon-button,.ghost-button{border:1px solid var(--line);background:var(--paper);color:var(--ink);min-height:42px;border-radius:8px;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 15px;font-weight:900}.button:hover,.icon-button:hover,.ghost-button:hover{border-color:var(--ink);transform:translateY(-1px)}.button.primary,.button.submit{border-color:var(--accent);background:var(--accent);color:#fffdf7;box-shadow:0 12px 28px #c24d2c40}.button.submit{grid-column:1 / -1;width:100%;margin-top:4px}.icon-button{display:inline-grid;place-items:center;width:42px;padding:0}.icon-button.small{width:36px;min-height:36px}.icon-button.danger:hover{border-color:var(--danger);color:var(--danger)}.ghost-button{padding:0 14px;font-weight:800}.layout{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:18px;align-items:start}.editor-panel,.list-panel,.settings-panel{border:1px solid var(--line);background:#fffdf7eb;box-shadow:var(--shadow)}.editor-panel{position:sticky;top:18px;border-radius:8px;padding:18px}.panel-heading,.list-header,.settings-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.part-form,.settings-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.field{display:grid;gap:7px}.field.full{grid-column:1 / -1}.field-label{grid-column:1}.field-color{grid-column:2}.field span{color:var(--muted);font-size:.78rem;font-weight:900;text-transform:uppercase}.field input,.field select,.field textarea{width:100%;min-height:48px;border:1px solid var(--line);border-radius:8px;background:#fffdf7;color:var(--ink);padding:0 12px;font-size:1rem;outline:none}.field textarea{min-height:70px;padding:11px 12px;resize:vertical;line-height:1.35}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #c24d2c29}.toggle-field{display:flex;align-items:center;gap:10px;min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:0 12px;color:var(--ink);font-weight:900}.toggle-field.full{grid-column:1 / -1}.toggle-field input{width:18px;height:18px;accent-color:var(--accent)}.toggle-field span{font-size:.86rem}.cut-preview{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:54px;border:1px dashed var(--steel);border-radius:8px;padding:12px;background:#f7f5ef}.cut-preview span{color:var(--muted);font-weight:900;text-transform:uppercase;font-size:.77rem}.cut-preview strong{font-size:1.1rem}.cut-preview.invalid{border-color:var(--danger);background:#a33a3314}.form-message{grid-column:1 / -1;margin:0;color:var(--accent-dark);font-weight:800}.panel-inline-message{margin:0 0 11px;border-left:3px solid var(--accent);background:#fff8ee;padding:8px 10px;font-size:.85rem}.list-panel{min-width:0;border-radius:8px;padding:18px}.summary-strip{flex-wrap:wrap;justify-content:flex-end}.summary-strip span,.quantity-pill{border:1px solid var(--line);border-radius:999px;background:var(--paper-deep);padding:7px 10px;color:var(--muted);font-size:.8rem;font-weight:900}.part-row .quantity-pill{padding:3px 7px;font-size:.7rem;white-space:nowrap}.part-row .row-actions{gap:4px}.part-row .icon-button.small{width:28px;min-height:28px;border-radius:6px}.empty-state{min-height:260px;display:grid;place-content:center;text-align:center;border:1px dashed var(--line);border-radius:8px;background:var(--paper-deep);padding:24px}.empty-state h3{margin:0 0 8px;font-size:1.5rem}.empty-state p{max-width:420px;margin:0;color:var(--muted)}.parts-list{display:grid;gap:0;border:1px solid var(--line);border-radius:8px;background:#fffdf7;overflow:hidden}.search-field{margin-bottom:12px}.parts-filters{display:grid;grid-template-columns:minmax(190px,1fr) 126px 110px;gap:8px;align-items:end;margin-bottom:12px}.parts-filters .search-field{margin-bottom:0}.parts-filters .field input,.parts-filters .field select{min-height:42px}.part-row{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:7px;align-items:center;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:5px 7px;transition:opacity .16s ease,transform .16s ease,background .16s ease}.part-row:last-child{border-bottom:0}.part-row:hover{background:#f6f1e7ad}.part-row:focus-within{background:#fff8ee}.part-row.dragging{opacity:.55;transform:scale(.99)}.drag-handle{display:grid;place-items:center;width:24px;height:30px;border:0;color:var(--muted);background:transparent}.part-main{min-width:0;display:grid;gap:5px}.part-title-line{min-width:0;display:grid;grid-template-columns:minmax(130px,1fr) auto auto;gap:7px;align-items:center}.part-title-line h3{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:0;font-size:.92rem;line-height:1.1;overflow-wrap:anywhere}.color-tag{display:inline-flex;align-items:center;max-width:150px;border:0;border-left:2px solid var(--line);border-radius:0;background:transparent;padding:0 0 0 6px;color:var(--muted);font-size:.72rem;font-weight:900;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-colors{grid-column:1 / -1;display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}.recent-colors button{flex:0 0 auto;min-height:30px;border:1px solid var(--line);border-radius:999px;background:var(--paper-deep);color:var(--ink);padding:0 10px;font-size:.78rem;font-weight:900}.part-main p{margin:0;color:var(--muted);font-size:.9rem}.part-detail-row{display:flex;align-items:center;gap:8px;min-width:0;overflow-x:auto;padding-bottom:1px;scrollbar-width:none}.part-detail-row::-webkit-scrollbar{display:none}.part-detail-row span{flex:0 0 auto;border:0;border-radius:0;background:transparent;color:var(--muted);padding:0;font-size:.7rem;font-weight:900;line-height:1}.cut-size{display:grid;gap:3px;justify-items:end}.compact-cut{min-width:98px;gap:1px}.cut-size span{color:var(--muted);font-size:.62rem;font-weight:900;text-transform:uppercase}.cut-size strong{font-size:.9rem;line-height:1;white-space:nowrap}.edit-modal-backdrop{align-items:center;justify-content:center;padding:16px}.edit-part-panel{width:min(560px,100%);min-height:0;max-height:min(92vh,760px);border-radius:8px}.edit-part-form{grid-template-columns:repeat(2,minmax(0,1fr))}.edit-part-form .compact-field input{min-height:40px}.edit-cut-preview{min-height:46px}.settings-backdrop{position:fixed;inset:0;z-index:10;display:flex;justify-content:flex-end;background:#1f242152;backdrop-filter:blur(5px)}.settings-panel{width:min(440px,100%);min-width:0;min-height:100vh;border-radius:0;padding:0 22px 22px;overflow-y:auto;overflow-x:hidden}.settings-panel .settings-heading{position:sticky;top:0;z-index:2;margin:0 -22px 18px;padding:18px 22px 14px;border-bottom:1px solid var(--line);background:#fffdf7fa;backdrop-filter:blur(8px)}.project-panel,.calculator-panel{width:min(520px,100%)}.holes-panel{width:min(740px,100%)}.calculator-card{display:flex;flex-direction:column;gap:12px;min-width:0}.hole-layout-card{display:grid;grid-template-columns:minmax(240px,.9fr) minmax(260px,1.1fr);gap:16px;align-items:start}.hole-layout-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.holes-panel .hole-layout-form .field.full{grid-column:1 / -1}.holes-panel .field{min-width:0}.holes-panel .field span{line-height:1.1;overflow-wrap:normal}.holes-panel .field input{min-width:0}.hole-layout-form .calculator-result,.hole-layout-form .hole-save-button{grid-column:1 / -1}.hole-note-field textarea{min-height:68px}.panel-photo-field{gap:7px}.panel-photo-upload{position:relative;min-height:42px;width:fit-content;overflow:hidden}.panel-photo-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}.panel-photo-upload span{color:inherit;font-size:.86rem;letter-spacing:0;text-transform:none}.panel-photo-preview{display:flex;gap:8px;align-items:flex-end}.panel-photo-preview img{display:block;width:94px;height:68px;object-fit:cover;border:1px solid var(--line);border-radius:7px}.panel-photo-preview .ghost-button{min-height:34px;font-size:.78rem}.hole-layout-preview{min-height:430px;display:grid;gap:10px;align-content:start;border:1px solid var(--line);border-radius:8px;background:linear-gradient(0deg,rgba(31,36,33,.035) 1px,transparent 1px),#fffdf7;background-size:100% 12px,auto;padding:14px}.hole-layout-preview svg{width:100%;height:min(62vh,470px);min-height:320px}.hole-layout-preview .panel-shape{fill:#fff8ee;stroke:var(--steel);stroke-width:1.6;rx:0}.hole-layout-preview .side-guide{stroke:var(--line);stroke-width:1.2;stroke-dasharray:5 5}.hole-layout-preview circle{fill:var(--accent);stroke:#fffdf7;stroke-width:1.4}.hole-layout-preview text{fill:var(--ink);font-size:9px;font-weight:900}.hole-layout-preview .hole-label-line{stroke:var(--line);stroke-width:1}.hole-layout-preview .dimension-line,.hole-layout-preview .side-dimension{stroke:var(--steel);stroke-width:1}.hole-layout-preview .dimension-text{fill:var(--muted);font-size:8px;text-anchor:end}.hole-layout-preview .side-dimension-text{fill:var(--muted);font-size:7px;text-anchor:middle}.hole-layout-preview p{margin:0;color:var(--accent-dark);font-weight:900;overflow-wrap:anywhere}.hole-layout-preview .hole-preview-columns{color:var(--steel);font-size:.82rem}.hole-layout-preview .hole-preview-note{border-left:2px solid var(--accent);color:var(--muted);padding-left:8px;font-size:.82rem}.saved-hole-layouts{display:grid;gap:9px;margin-top:16px;border-top:1px solid var(--line);padding-top:12px}.calculator-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0}.calculator-card>*,.calculator-grid>*{min-width:0}.calculator-card>*{width:100%}.calculator-card .calculator-save-button{flex:0 0 auto;grid-column:auto;grid-row:auto;width:100%;margin-top:0}.calculator-result{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:48px;border:1px solid var(--steel);border-radius:8px;background:#fffdf7;padding:10px 12px}.drill-presets{display:grid;gap:7px}.drill-presets-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.drill-presets-heading span{color:var(--muted);font-size:.76rem;font-weight:900;text-transform:uppercase}.preset-save-button{min-height:32px;padding:0 10px;font-size:.78rem}.preset-list{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}.preset-chip{flex:0 0 auto;display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px;background:var(--paper);overflow:hidden}.preset-chip button{min-height:34px;border:0;background:transparent;color:var(--ink);font-weight:900}.preset-chip button:first-child{padding:0 10px}.preset-chip button:last-child{display:grid;place-items:center;width:32px;border-left:1px solid var(--line);color:var(--danger)}.calculator-result span,.drill-point-row span{color:var(--muted);font-size:.76rem;font-weight:900;text-transform:uppercase}.calculator-result strong{font-size:1rem;text-align:right}.muted-result{border-style:dashed;background:var(--paper-deep)}.calculator-empty{min-height:170px}.drill-points{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding-bottom:3px;scrollbar-width:thin}.drill-point-row{flex:0 0 auto;min-width:116px;display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid rgba(194,77,44,.34);border-radius:8px;background:#fff8ee;padding:13px 14px;box-shadow:0 8px 20px #1f242112}.drill-point-value{display:grid;gap:2px;justify-items:end}.drill-point-value strong{color:var(--accent-dark);font-size:1.38rem;line-height:1}.drill-point-value small{color:var(--muted);font-size:.82rem;font-weight:900}.saved-calculations{display:block;border-top:1px solid var(--line);padding-top:12px}.saved-calculations-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.saved-calculations-heading span{color:var(--muted);font-size:.76rem;font-weight:900;text-transform:uppercase}.saved-calculations-heading strong{border:1px solid var(--line);border-radius:999px;background:var(--paper-deep);padding:5px 9px;color:var(--muted);font-size:.78rem}.saved-calculation-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:11px}.saved-calculation-row h3{margin:0 0 5px;overflow-wrap:anywhere}.saved-calculation-row p{margin:0;color:var(--muted);font-size:.84rem}.saved-calculation-row .saved-calculation-points{margin-top:5px;color:var(--accent-dark);font-size:.95rem;font-weight:900;overflow-wrap:anywhere}.saved-hole-content{min-width:0}.saved-hole-note{margin-top:6px!important;border-left:2px solid var(--accent);padding-left:7px;color:var(--ink)!important}.saved-hole-photo{display:block;margin-top:7px;width:86px;height:60px;border:1px solid var(--line);border-radius:6px;object-fit:cover}.saved-hole-actions{flex-wrap:wrap;justify-content:flex-end}.project-save-box{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}.account-box{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:8px;background:var(--paper-deep);padding:12px;margin-bottom:14px}.account-box span{display:block;color:var(--muted);font-size:.72rem;font-weight:900;text-transform:uppercase}.account-box strong{display:block;margin-top:3px;overflow-wrap:anywhere}.account-box p{margin:5px 0 0;color:var(--muted);font-size:.84rem}.project-save-box .field{grid-column:1 / -1}.project-save-box .button.submit{grid-column:auto;margin-top:0}.project-date-field input{min-width:0;color-scheme:light}.project-date-field input::-webkit-date-and-time-value{text-align:left}.project-save-actions{grid-column:1 / -1;display:grid;grid-template-columns:minmax(138px,1.3fr) 1fr 1fr;gap:8px}.project-save-actions .button{min-width:0;padding-inline:10px}.project-save-actions .button.submit{grid-column:auto;grid-row:auto;width:auto;margin-top:0}.saved-projects-list{display:grid;gap:7px}.project-search-field{margin-bottom:2px}.project-search-field input{min-height:41px}.saved-project-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:9px 8px 9px 10px}.saved-project-row h3{margin:0;min-width:0;font-size:.96rem;line-height:1.15;overflow-wrap:anywhere}.saved-project-row p{margin:0;color:var(--muted);font-size:.77rem}.saved-project-copy{min-width:0;display:grid;gap:5px}.saved-project-heading{min-width:0;display:flex;align-items:baseline;gap:8px}.saved-project-count{flex:0 0 auto;color:var(--muted);font-size:.68rem;font-weight:900;font-variant-numeric:tabular-nums;white-space:nowrap}.saved-project-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.saved-project-meta{display:flex;flex-wrap:wrap;gap:4px 10px}.saved-project-meta span{display:inline-flex;gap:5px;align-items:baseline;color:var(--muted);font-size:.63rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.saved-project-meta time{color:var(--ink);font-size:.74rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:0;text-transform:none;white-space:nowrap}.saved-project-actions{display:flex;align-items:center;gap:4px}.saved-project-actions .saved-project-open{min-height:36px;padding:0 11px;font-size:.84rem}.saved-project-actions .icon-button.small{width:34px;min-height:36px}.project-actions{display:flex;align-items:center;gap:8px}.compact-empty{min-height:150px}@media(max-width:980px){.layout{grid-template-columns:1fr}.editor-panel{position:static}}@media(max-width:720px){.app-shell{padding:8px}.topbar{align-items:flex-start;flex-direction:column;gap:8px;padding:4px 0 8px}.topbar-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:7px}.button.primary{grid-column:1 / -1}.topbar-actions .export-top-button{grid-column:1;grid-row:1}.copy-top-button{grid-column:2;grid-row:1}.projects-top-button{grid-column:1;grid-row:2}.calculator-top-button{grid-column:2;grid-row:2}.holes-top-button{grid-column:1;grid-row:3}.account-top-button{grid-column:2;grid-row:3}.topbar-actions .icon-button{grid-column:1 / -1;grid-row:4;justify-self:end}.editor-panel,.list-panel{padding:10px}.panel-heading,.list-header{margin-bottom:8px}.panel-heading .eyebrow,.list-header .eyebrow{display:none}.panel-heading h2,.list-header h2{font-size:1.05rem}.part-form{grid-template-columns:repeat(12,minmax(0,1fr));gap:7px}.field.full{grid-column:1 / -1}.field-label{grid-column:1 / span 8;grid-row:1}.field-color{grid-column:9 / span 4;grid-row:1}.recent-colors{grid-column:1 / -1;grid-row:2;gap:5px}.recent-colors button{min-height:27px;padding:0 8px;font-size:.7rem}.field-height{grid-column:1 / span 6;grid-row:3}.field-width{grid-column:7 / span 6;grid-row:3}.field-quantity{grid-column:1 / span 6;grid-row:6;align-content:start}.field-split-width{grid-column:7 / span 6;grid-row:4}.field-split-height{grid-column:1 / span 6;grid-row:4}.field-fuga-width{grid-column:7 / span 6;grid-row:5}.field-fuga-height{grid-column:1 / span 6;grid-row:5}.compact-field{gap:4px}.settings-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.field span{font-size:.64rem}.field input,.field select,.field textarea{min-height:42px;padding:0 10px;font-size:16px;font-weight:800}.compact-field input{min-height:34px;font-size:16px}.part-row{grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:6px 7px}.drag-handle{display:none}.part-main{gap:5px}.part-title-line{grid-template-columns:minmax(0,1fr) auto auto;gap:5px}.compact-cut{grid-column:2;grid-row:1;min-width:88px}.cut-size{justify-items:end}.row-actions{display:grid;grid-template-columns:repeat(3,28px);gap:4px;align-self:center}.icon-button.small{width:28px;min-height:28px}.cut-preview{grid-column:1 / -1;grid-row:7;min-height:40px;padding:8px 10px}.cut-preview strong{font-size:.95rem}.form-message{font-size:.84rem}.button,.icon-button,.ghost-button{min-height:38px}.button.submit{grid-column:7 / span 6;grid-row:6;min-height:42px;margin-top:0}.settings-backdrop{align-items:flex-end}.settings-panel{min-height:min(92vh,760px);max-height:92vh;border-radius:8px 8px 0 0;width:100%}.edit-modal-backdrop{align-items:flex-end;padding:0}.edit-part-panel{border-radius:8px 8px 0 0}.edit-part-form{grid-template-columns:repeat(12,minmax(0,1fr));gap:7px}.edit-part-form .field-label{grid-column:1 / span 8;grid-row:auto}.edit-part-form .field-color{grid-column:9 / span 4;grid-row:auto}.edit-part-form .field-height,.edit-part-form .field-width{grid-row:auto}.edit-part-form .compact-field{grid-column:span 4}.edit-part-form .edit-cut-preview{grid-row:auto}.edit-part-form .button.submit{grid-column:1 / -1;grid-row:auto}.project-save-box,.account-box{grid-template-columns:1fr}.project-actions{display:grid;grid-template-columns:1fr auto}.parts-filters{grid-template-columns:minmax(0,1fr) 108px 92px;gap:6px}.project-panel{padding-left:12px;padding-right:12px}.project-panel .settings-heading{margin-left:-12px;margin-right:-12px;padding:12px;margin-bottom:10px}.project-panel .account-box{gap:7px;padding:9px 10px;margin-bottom:10px}.project-panel .account-box p{display:none}.project-panel .account-box .button{justify-self:start;min-height:34px;padding-inline:12px;font-size:.84rem}.project-save-box{gap:8px;margin-bottom:12px}.project-save-actions .button{min-height:40px;font-size:.84rem}.saved-project-row{grid-template-columns:minmax(0,1fr) auto}.saved-calculation-row{grid-template-columns:1fr}.saved-hole-actions{display:flex}.calculator-card{gap:9px;width:100%;overflow-x:hidden}.hole-layout-card{grid-template-columns:1fr;gap:10px}.hole-layout-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.hole-note-field textarea{min-height:62px}.panel-photo-preview img{width:82px;height:59px}.holes-panel{padding-left:12px;padding-right:12px}.holes-panel .settings-heading{margin-left:-12px;margin-right:-12px;padding:12px;margin-bottom:12px}.holes-panel .field{gap:5px}.holes-panel .field span{font-size:.62rem;line-height:1.05;min-height:1.35em}.holes-panel .field input{min-height:46px;padding:0 11px;font-size:16px}.holes-panel .hole-layout-form .field.full{grid-column:1 / -1}.holes-panel .button.submit{grid-column:1 / -1;grid-row:auto;width:100%}.hole-layout-preview{min-height:300px;padding:10px}.hole-layout-preview svg{height:min(48vh,360px);min-height:250px}.calculator-grid{gap:6px;width:100%}.calculator-result{min-height:48px;padding:10px}.calculator-result strong{font-size:.98rem}.drill-points{gap:6px}.drill-point-row{padding:11px 10px}.drill-point-value strong{font-size:1.26rem}.drill-point-value small{font-size:.72rem}.calculator-card .field span{font-size:.64rem}.calculator-card .field input{min-height:42px;padding:0 10px;font-size:16px;min-width:0}.calculator-card .calculator-save-button{grid-column:auto;grid-row:auto;width:100%;min-height:42px}}@media(max-width:480px){.topbar h1{font-size:1.68rem}.panel-heading,.list-header,.settings-heading{align-items:flex-start;flex-direction:column}.settings-heading{flex-direction:row}.editor-panel,.list-panel{border-radius:6px}.summary-strip{justify-content:flex-start}.eyebrow{font-size:.62rem;margin-bottom:3px}.topbar-actions{gap:7px}.part-title-line h3{font-size:.84rem}.color-tag{max-width:110px;padding:3px 6px;font-size:.66rem}.part-detail-row span{font-size:.64rem}.parts-filters{grid-template-columns:1fr 1fr}.parts-filters .search-field{grid-column:1 / -1}.parts-filters .field input,.parts-filters .field select{min-height:37px}.project-panel .settings-heading h2{font-size:1.05rem}.project-panel .field{gap:4px}.project-panel .field input{min-height:39px}.project-search-field input{min-height:36px}.project-save-actions{gap:5px;grid-template-columns:minmax(114px,1.3fr) .92fr .82fr}.project-save-actions .button{gap:5px;padding-inline:7px;font-size:.76rem}.project-save-actions svg{width:15px;height:15px}.saved-projects-list{gap:5px}.saved-project-row{gap:5px;padding:7px 6px 7px 8px}.saved-project-copy{gap:4px}.saved-project-heading{display:grid;gap:2px}.saved-project-row h3{font-size:.88rem}.saved-project-title{font-size:.7rem}.saved-project-meta{gap:3px 8px}.saved-project-meta time{font-size:.68rem}.saved-project-actions{gap:3px}.saved-project-actions .saved-project-open{min-height:32px;padding:0 8px;font-size:.76rem}.saved-project-actions .icon-button.small{width:30px;min-height:32px}.calculator-panel{padding-left:10px;padding-right:10px}.calculator-panel .settings-heading{margin-left:-10px;margin-right:-10px;padding:9px 10px 8px;margin-bottom:10px}.calculator-panel .settings-heading h2{font-size:1rem}.calculator-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px}.calculator-panel .field input{width:100%}.calculator-card{gap:7px}.hole-layout-form{grid-template-columns:1fr 1fr;gap:8px}.holes-panel .field span{font-size:.6rem}.holes-panel .field input{min-height:44px;padding:0 10px}.holes-panel .calculator-result{min-height:44px;padding:8px 10px}.hole-layout-preview{min-height:250px}.hole-layout-preview svg{height:300px;min-height:220px}.calculator-card .field{gap:4px}.calculator-card .field span,.calculator-result span,.drill-point-row span,.drill-presets-heading span,.saved-calculations-heading span{font-size:.56rem}.calculator-card .field input{min-height:36px;padding:0 8px}.calculator-result{min-height:38px;padding:7px 9px}.preset-save-button{min-height:30px;padding:0 8px;font-size:.72rem}.preset-chip button{min-height:30px}.preset-chip button:first-child{padding:0 8px}.preset-chip button:last-child{width:28px}.calculator-empty{min-height:110px;padding:14px}.calculator-empty h3{font-size:1.2rem;margin-bottom:5px}.calculator-empty p{font-size:.9rem}.drill-points{gap:5px}.drill-point-row{min-width:98px;padding:8px 9px}.drill-point-value strong{font-size:1.12rem}.saved-calculations{padding-top:8px}.saved-calculations-heading{margin-bottom:6px}.saved-calculation-row{gap:8px;padding:9px}.saved-calculation-row .saved-calculation-points{font-size:.88rem}.calculator-panel .button.submit.calculator-save-button{grid-column:auto;grid-row:auto;width:100%;min-height:36px}}@media(max-width:720px){input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important}}.worker-shell{max-width:720px;margin:0 auto;padding:12px 10px calc(24px + env(safe-area-inset-bottom));padding-top:calc(10px + env(safe-area-inset-top));min-height:100dvh;display:flex;flex-direction:column;gap:10px}.worker-center{align-items:center;justify-content:center;text-align:center;gap:12px}.worker-center h1{margin:0;font-size:1.5rem}.worker-center p{margin:0;color:var(--muted);max-width:32ch}.worker-header{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:12px 14px 10px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px;position:sticky;top:calc(6px + env(safe-area-inset-top));z-index:5}.worker-header h1{margin:0;font-size:clamp(1.15rem,4vw,1.55rem);line-height:1.1;font-weight:900}.worker-meta{margin:0;color:var(--muted);font-size:.85rem;font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.worker-meta strong{color:var(--ink);font-size:.95rem}.worker-meta-pill{background:var(--accent);color:#fff;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.04em}.worker-toolbar{display:flex;gap:6px}.worker-chip{display:inline-flex;align-items:center;gap:6px;background:var(--paper-deep);border:1px solid var(--line);color:var(--ink);border-radius:999px;padding:6px 12px;font-size:.78rem;font-weight:700;min-height:32px;transition:background .16s ease,border-color .16s ease}.worker-chip-active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.worker-header-text{display:flex;flex-direction:column;gap:2px}.worker-eyebrow{margin:0;font-size:.66rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-dark)}.worker-progress{width:100%;height:12px;background:var(--paper-deep);border:1px solid var(--line);border-radius:999px;overflow:hidden}.worker-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-dark));transition:width .32s ease-out}.worker-progress-done .worker-progress-fill{background:linear-gradient(90deg,#4a9568,var(--success))}.worker-banner{display:flex;align-items:center;gap:10px;background:#e3f1e9;border:1px solid #b9d8c4;color:var(--success);padding:12px 14px;border-radius:12px;font-weight:700}.worker-empty{text-align:center;padding:48px 16px;border:1px dashed var(--line);border-radius:16px;background:var(--paper);color:var(--muted)}.worker-empty h2{margin:0 0 6px;color:var(--ink)}.worker-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.worker-row{border-radius:14px;overflow:hidden}.worker-list{gap:6px}.worker-row-button{width:100%;display:grid;grid-template-columns:36px 1fr;align-items:center;gap:10px;background:var(--paper);border:1.5px solid var(--line);border-radius:10px;padding:8px 12px 8px 8px;min-height:52px;text-align:left;color:var(--ink);transition:background .18s ease,border-color .18s ease,transform .12s ease;-webkit-tap-highlight-color:transparent}.worker-row-button:active{transform:scale(.985)}.worker-row-button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.worker-row-button:disabled{cursor:progress}.worker-check{width:32px;height:32px;border-radius:8px;border:2px solid var(--line);background:var(--paper-deep);display:inline-flex;align-items:center;justify-content:center;color:transparent;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease;flex-shrink:0}.worker-row-body{display:flex;flex-direction:column;gap:1px;min-width:0}.worker-row-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.worker-index{font-size:.66rem;font-weight:800;letter-spacing:.06em;color:var(--muted);background:var(--paper-deep);border-radius:4px;padding:1px 5px;font-variant-numeric:tabular-nums}.worker-label{font-weight:800;font-size:.98rem;word-break:break-word;line-height:1.2}.worker-row-stats{display:flex;flex-wrap:wrap;gap:2px 12px;font-size:.85rem;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.3}.worker-dim,.worker-qty{display:inline-flex;align-items:baseline;gap:3px}.worker-qty{margin-left:auto;font-size:.85rem;color:var(--muted)}.worker-qty strong{color:var(--ink);font-weight:800}.worker-dim strong{font-weight:800}.worker-unit{font-size:.7rem;color:var(--muted);margin-left:1px}.worker-cut{font-size:.74rem;color:var(--steel);font-variant-numeric:tabular-nums;display:inline-flex;align-items:baseline;gap:3px}.worker-cut strong{color:var(--ink);font-weight:800}.worker-row-done .worker-row-button{background:#ecf4ef;border-color:#9fc6ae}.worker-row-done .worker-check{background:var(--success);border-color:var(--success);color:#fff}.worker-row-done .worker-label{text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:#306b4880;color:#2c5a3d}.worker-row-done .worker-row-stats,.worker-row-done .worker-cut,.worker-row-done .worker-qty,.worker-row-done .worker-index{opacity:.65}.worker-row-pending .worker-row-button{opacity:.8}.worker-row-flash .worker-row-button{animation:worker-flash .6s ease-out}.worker-row-flash.worker-row-done .worker-check{animation:worker-check-pop .38s cubic-bezier(.34,1.56,.64,1)}@keyframes worker-flash{0%{box-shadow:0 0 #306b4880}60%{box-shadow:0 0 0 8px #306b4800}to{box-shadow:0 0 #306b4800}}@keyframes worker-check-pop{0%{transform:scale(.6)}60%{transform:scale(1.18)}to{transform:scale(1)}}.worker-footer{margin-top:auto;padding-top:8px;text-align:center;color:var(--muted);font-size:.85rem}.worker-footer p{margin:0}.worker-spin{animation:worker-spin .9s linear infinite}@keyframes worker-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(min-width:600px){.worker-shell{padding:18px 18px calc(28px + env(safe-area-inset-bottom));gap:12px}.worker-row-button{grid-template-columns:44px 1fr;padding:10px 14px 10px 10px;min-height:60px}.worker-check{width:38px;height:38px}.worker-label{font-size:1.05rem}.worker-row-stats{font-size:.9rem}}.worker-toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translate(-50%);background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:999px;font-size:.88rem;font-weight:700;box-shadow:0 14px 40px #1f242159;z-index:20;animation:worker-toast-in .22s ease-out;max-width:calc(100% - 24px);text-align:center}.worker-toast-error{background:var(--danger)}@keyframes worker-toast-in{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.worker-confirm-backdrop{position:fixed;inset:0;z-index:30;background:#1f242180;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:18px;animation:worker-toast-in .18s ease-out}.worker-confirm{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:22px 20px 18px;max-width:420px;width:100%;box-shadow:0 24px 60px #1f242166;display:flex;flex-direction:column;gap:12px}.worker-confirm h2{margin:0;font-size:1.2rem;font-weight:900}.worker-confirm p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.45}.worker-confirm p strong{color:var(--ink)}.worker-confirm-actions{display:flex;gap:10px;margin-top:6px}.worker-confirm-btn{flex:1;min-height:48px;border-radius:10px;font-weight:800;font-size:.95rem;border:1.5px solid var(--line);background:var(--paper-deep);color:var(--ink);transition:background .16s ease,border-color .16s ease,transform .12s ease}.worker-confirm-btn:active{transform:scale(.97)}.worker-confirm-cancel{background:var(--paper-deep)}.worker-confirm-danger{background:var(--danger);border-color:var(--danger);color:#fff}.share-dialog-backdrop{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:16px;background:#1f242166;backdrop-filter:blur(6px);animation:share-fade-in .18s ease-out}.share-dialog{width:min(440px,100%);background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:18px;display:flex;flex-direction:column;gap:12px;animation:share-slide-up .22s cubic-bezier(.16,1,.3,1)}.share-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.share-dialog-header h2{margin:0;font-size:1.2rem;font-weight:900;line-height:1.2}.share-option{display:grid;grid-template-columns:44px 1fr;align-items:flex-start;gap:12px;background:var(--paper-deep);border:1.5px solid var(--line);border-radius:12px;padding:14px;text-align:left;color:var(--ink);transition:border-color .16s ease,background .16s ease,transform .12s ease}.share-option:hover:not(:disabled),.share-option:focus-visible{border-color:var(--accent);background:var(--paper);outline:none}.share-option:active:not(:disabled){transform:scale(.99)}.share-option:disabled{opacity:.5;cursor:progress}.share-option-icon{width:44px;height:44px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.share-option-icon-list{background:#306b4824;color:var(--success)}.share-option-icon-full{background:#c24d2c24;color:var(--accent-dark)}.share-option-body{display:flex;flex-direction:column;gap:4px;min-width:0}.share-option-title{font-weight:900;font-size:1rem;display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.share-option-badge{background:var(--success);color:#fff;font-size:.62rem;letter-spacing:.06em;font-weight:800;padding:2px 6px;border-radius:4px;text-transform:uppercase}.share-option-desc{font-size:.85rem;color:var(--muted);line-height:1.4;font-weight:400}.share-dialog-status{text-align:center;color:var(--muted);font-size:.85rem;margin:0}@keyframes share-fade-in{0%{opacity:0}to{opacity:1}}@keyframes share-slide-up{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.worker-progress-fill,.worker-row-button,.worker-check{transition:none}.worker-spin{animation:none}}
