.tdpa-builder{--blue:#165dff;--navy:#071b4b;--gold:#ffb800;--line:#dbe4f3;--muted:#68758f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#13224a;max-width:1320px;margin:32px auto;background:#f5f8ff;border:1px solid #dbe5ff;border-radius:28px;overflow:hidden;box-shadow:0 22px 60px rgba(20,55,120,.13)}
.tdpa-builder *{box-sizing:border-box}
.tdpa-builder button,.tdpa-builder input{font:inherit}
.tdpa-builder button:focus-visible,.tdpa-builder input:focus-visible{outline:3px solid #b8cbff;outline-offset:2px}
.tdpa-builder__hero{text-align:center;padding:28px 20px 24px;background:linear-gradient(135deg,#071b4b,#1046b9);color:white}
.tdpa-builder__eyebrow{display:inline-block;color:#ffd54d;font-size:12px;font-weight:900;letter-spacing:.16em;margin-bottom:6px}
.tdpa-builder__hero h2{font-size:clamp(30px,5vw,48px);line-height:1;margin:4px 0 10px;color:white}
.tdpa-builder__hero p{margin:0 auto;max-width:720px;color:#dbe7ff;font-size:17px}
.tdpa-builder__app{display:grid;grid-template-columns:370px minmax(0,1fr);min-height:760px}
.tdpa-builder__tools{padding:22px;background:white;border-right:1px solid var(--line);max-height:860px;overflow-y:auto}
.tdpa-step,.tdpa-field>span,.tdpa-colours legend,.tdpa-library legend{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--navy)}
.tdpa-step small,.tdpa-field small{display:block;color:var(--muted);font-weight:500;margin-top:2px}
.tdpa-step__number,.tdpa-field b,.tdpa-colours b,.tdpa-library b{display:inline-grid;place-items:center;flex:0 0 27px;width:27px;height:27px;border-radius:50%;background:var(--blue);color:white;font-size:13px}
.tdpa-bases{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:14px 0 22px}
.tdpa-bases button,.tdpa-library button{border:2px solid #dce4f3;border-radius:12px;background:white;color:#253657;padding:9px 7px;cursor:grab;font-weight:750;transition:border-color .16s,background .16s,transform .16s}
.tdpa-bases button:hover,.tdpa-library button:hover{border-color:#91adf4;transform:translateY(-1px)}
.tdpa-bases button:active,.tdpa-library button:active{cursor:grabbing}
.tdpa-bases button span{display:block;font-size:23px;line-height:1;color:#7690c4}
.tdpa-bases button.is-active{border-color:var(--blue);background:#edf3ff;color:var(--blue)}
.tdpa-bases button.is-active span{color:var(--blue)}
.tdpa-library{border:0;padding:0;margin:0 0 22px}
.tdpa-library>p{margin:7px 0 10px;color:var(--muted);font-size:12px}
.tdpa-library>div{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.tdpa-library button{min-height:66px;font-size:11px;padding:8px 5px}
.tdpa-library button span{display:block;margin-bottom:4px;color:#4169b4;font-size:22px;line-height:1}
.tdpa-library button.is-dragging{opacity:.55;border-color:var(--gold)}
.tdpa-field{display:block;margin-bottom:21px}
.tdpa-field input{width:100%;margin:10px 0 4px;padding:12px 14px;border:2px solid #cfd9ec;border-radius:12px;text-transform:uppercase;font-weight:800;color:var(--navy)}
.tdpa-field input:focus{border-color:var(--blue)}
.tdpa-colours{border:0;padding:0;margin:0 0 21px}
.tdpa-colours>div{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.tdpa-colours button{width:32px;height:32px;border:3px solid white;border-radius:50%;background:var(--swatch);box-shadow:0 0 0 2px #d4deef;cursor:pointer}
.tdpa-colours button.is-active{box-shadow:0 0 0 3px var(--navy)}
.tdpa-inspector{border:1px solid #ccd9ef;border-radius:16px;background:#f7f9fd;margin:0 0 17px;padding:13px}
.tdpa-inspector__heading{display:flex;justify-content:space-between;align-items:center;gap:10px}
.tdpa-inspector__heading>div{display:grid;gap:2px}
.tdpa-inspector__heading small{font-size:9px;letter-spacing:.13em;color:#7b88a0;font-weight:900}
.tdpa-inspector__heading strong{font-size:14px;color:var(--navy)}
.tdpa-inspector__heading button{border:1px solid #cbd7e9;background:white;color:#40506d;border-radius:8px;padding:6px 9px;font-size:11px;font-weight:800;cursor:pointer}
.tdpa-inspector__heading button:disabled{opacity:.45;cursor:not-allowed}
.tdpa-inspector__empty{color:#78859d;font-size:12px;line-height:1.45;margin-top:10px}
.tdpa-inspector__controls{display:grid;gap:11px;margin-top:12px}
.tdpa-precision{border:1px solid #d5dfef;border-radius:11px;background:#fff;overflow:hidden}
.tdpa-precision summary{padding:9px 11px;color:#4d5d78;font-size:11px;font-weight:850;cursor:pointer;user-select:none}
.tdpa-precision[open] summary{border-bottom:1px solid #e1e7f1;background:#f8faff}
.tdpa-precision__body{display:grid;gap:11px;padding:11px}
.tdpa-object-mode{display:grid;grid-template-columns:1fr 1fr;background:#e8eef8;border-radius:10px;padding:3px}
.tdpa-object-mode button{border:0;border-radius:8px;background:transparent;padding:7px;color:#596984;font-size:12px;font-weight:850;cursor:pointer}
.tdpa-object-mode button.is-active{background:white;color:var(--blue);box-shadow:0 2px 7px rgba(37,64,120,.13)}
.tdpa-object-mode button[data-mode="hole"].is-active{color:#6840b7;background:repeating-linear-gradient(135deg,#fff 0,#fff 5px,#eee7ff 5px,#eee7ff 10px)}
.tdpa-cut-note{margin:-4px 0 0;color:#6b5a91;font-size:10px;line-height:1.4}
.tdpa-direct-help{margin:0;padding:9px 10px;border-radius:10px;background:#eef5ff;color:#38516f;font-size:11px;line-height:1.45}
.tdpa-object-palette{display:grid;gap:8px;padding:10px;border:1px solid #d5dfef;border-radius:11px;background:#fff}
.tdpa-object-palette>span{color:#485773;font-size:11px;font-weight:850}
.tdpa-object-palette>div{display:flex;gap:8px;flex-wrap:wrap}
.tdpa-object-palette button{width:28px;height:28px;border:3px solid #fff;border-radius:50%;background:var(--swatch);box-shadow:0 0 0 2px #d4deef;cursor:pointer;transition:transform .15s,box-shadow .15s}
.tdpa-object-palette button:hover:not(:disabled){transform:scale(1.08)}
.tdpa-object-palette button.is-active{box-shadow:0 0 0 3px var(--navy)}
.tdpa-object-palette small{color:#78859d;font-size:10px;line-height:1.35}
.tdpa-object-palette.is-disabled{background:#f2f0f8}
.tdpa-object-palette button:disabled{opacity:.4;cursor:not-allowed}
.tdpa-object-palette button[style*="#FFFFFF"]{background-image:linear-gradient(135deg,#fff 50%,#edf1f7 50%)}
.tdpa-inspector__controls label{display:grid;gap:5px}
.tdpa-inspector__controls label>span{display:flex;justify-content:space-between;color:#485773;font-size:11px;font-weight:800}
.tdpa-inspector__controls output{color:var(--blue)}
.tdpa-inspector__controls input[type="range"]{width:100%;accent-color:var(--blue)}
.tdpa-object-colour{grid-template-columns:1fr auto;align-items:center}
.tdpa-object-colour input[type="color"]{width:42px;height:30px;border:1px solid #bdcbe2;border-radius:8px;background:white;padding:2px;cursor:pointer}
.tdpa-stretch-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tdpa-position-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tdpa-position-controls label{position:relative}
.tdpa-position-controls input{width:100%;height:35px;border:1px solid #bdcbe2;border-radius:8px;background:white;color:#253657;padding:6px 28px 6px 8px;font-weight:800}
.tdpa-position-controls small{position:absolute;right:8px;bottom:9px;color:#8290a8;font-size:10px}
.tdpa-nudge{display:grid;gap:8px;border:1px solid #d5dfef;border-radius:12px;background:white;padding:10px}
.tdpa-nudge__title{text-align:center;color:#586984;font-size:10px;font-weight:850}
.tdpa-nudge__pad{display:grid;grid-template-columns:repeat(3,38px);grid-template-areas:". up ." "left down right";gap:5px;justify-content:center}
.tdpa-nudge__pad button,.tdpa-nudge__height button{border:1px solid #becce2;border-radius:8px;background:#f7faff;color:#17345f;font-weight:900;cursor:pointer;user-select:none;touch-action:none}
.tdpa-nudge__pad button{height:34px;font-size:18px}
.tdpa-nudge__pad button[data-nudge="up"]{grid-area:up}
.tdpa-nudge__pad button[data-nudge="left"]{grid-area:left}
.tdpa-nudge__pad button[data-nudge="down"]{grid-area:down}
.tdpa-nudge__pad button[data-nudge="right"]{grid-area:right}
.tdpa-nudge__pad button:hover,.tdpa-nudge__height button:hover{border-color:var(--blue);background:#edf3ff;color:var(--blue)}
.tdpa-nudge__height{display:grid;grid-template-columns:1fr auto 1fr;gap:7px;align-items:center}
.tdpa-nudge__height button{padding:7px 8px;font-size:10px}
.tdpa-nudge__height output{min-width:42px;text-align:center;font-size:10px;font-weight:850}
.tdpa-nudge button:disabled{opacity:.4;cursor:not-allowed}
.tdpa-hole-note{color:#78859d;font-size:10px;line-height:1.4}
.tdpa-inspector__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tdpa-inspector__actions button{border:1px solid #bdcbe2;background:white;color:#30415f;border-radius:9px;padding:8px;font-size:11px;font-weight:850;cursor:pointer}
.tdpa-inspector__actions button[data-delete]{border-color:#f1b9b5;color:#b42318;background:#fff8f7}
.tdpa-move-help{display:flex;gap:10px;align-items:flex-start;margin-top:3px;padding:12px;border-radius:12px;background:#eef5ff;color:#0b2d67}
.tdpa-move-help>b{display:grid;place-items:center;flex:0 0 26px;height:26px;border-radius:50%;background:var(--blue);color:#fff}
.tdpa-move-help span{display:grid;gap:2px}
.tdpa-move-help small{line-height:1.35;color:#52647e}
.tdpa-reset{border:0;background:none;color:#63708d;text-decoration:underline;cursor:pointer;padding:9px 5px 2px}
.tdpa-builder__stage{padding:22px 26px 28px;min-width:0}
.tdpa-progress{display:flex;align-items:center;gap:14px;font-size:13px;font-weight:800}
.tdpa-progress>div{height:8px;border-radius:8px;overflow:hidden;background:#dfe6f2;flex:1}
.tdpa-progress i{display:block;height:100%;width:66.66%;background:linear-gradient(90deg,var(--blue),#5c8cff);transition:width .3s}
.tdpa-canvas-wrap{height:590px;margin:16px 0 14px;border-radius:22px;position:relative;overflow:hidden;background-color:#eaf0fb;background-image:linear-gradient(rgba(105,130,174,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(105,130,174,.13) 1px,transparent 1px),radial-gradient(circle at 50% 35%,rgba(255,255,255,.96) 0,rgba(234,240,251,.85) 64%,rgba(220,230,246,.92) 100%);background-size:28px 28px,28px 28px,100% 100%;border:1px solid #d3dfef}
.tdpa-canvas-wrap canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}
.tdpa-canvas-wrap canvas.is-moving{cursor:grabbing}
.tdpa-workplane-toolbar{position:absolute;left:12px;top:12px;z-index:3;display:flex;gap:5px;padding:5px;border:1px solid #ccd8ea;border-radius:12px;background:rgba(255,255,255,.94);box-shadow:0 6px 18px rgba(38,61,101,.12)}
.tdpa-workplane-toolbar button{display:flex;align-items:center;gap:5px;border:0;border-radius:8px;background:transparent;color:#334461;padding:7px 8px;font-size:13px;font-weight:850;cursor:pointer}
.tdpa-workplane-toolbar button:hover:not(:disabled){background:#eaf1ff;color:var(--blue)}
.tdpa-workplane-toolbar button.is-active{background:#eaf1ff;color:var(--blue);box-shadow:inset 0 0 0 1px #c7d7ff}
.tdpa-workplane-toolbar button:disabled{opacity:.35;cursor:not-allowed}
.tdpa-workplane-toolbar button span{font-size:10px}
.tdpa-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;z-index:5;background:#eef3fc;color:var(--navy);font-weight:800}
.tdpa-loading button{border:0;border-radius:10px;padding:10px 18px;background:var(--blue);color:#fff;font-weight:800;cursor:pointer}
.tdpa-loading.is-error span{color:#9b1c1c}
.tdpa-loading[hidden]{display:none!important}
.tdpa-tip{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);background:rgba(7,27,75,.84);color:white;border-radius:99px;padding:7px 12px;font-size:12px;white-space:nowrap;pointer-events:none}
.tdpa-tip span{color:var(--gold)}
.tdpa-view-reset{position:absolute;top:12px;right:12px;z-index:3;border:1px solid #d4def0;background:rgba(255,255,255,.94);border-radius:9px;padding:8px 11px;color:#31415f;font-size:11px;font-weight:800;cursor:pointer}
.tdpa-selection-badge{position:absolute;right:12px;top:55px;z-index:3;border:1px solid #e8c85b;border-radius:9px;background:#fff8d7;color:#66520b;padding:6px 9px;font-size:11px;font-weight:850;pointer-events:none}
.tdpa-canvas-wrap.is-drag-over{outline:4px dashed var(--gold);outline-offset:-8px}
.tdpa-drop-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.95);z-index:4;padding:12px 18px;border-radius:999px;background:#0b2d67;color:#fff;font-weight:800;opacity:0;pointer-events:none;transition:.18s ease}
.tdpa-canvas-wrap.is-drag-over .tdpa-drop-hint{opacity:1;transform:translate(-50%,-50%) scale(1)}
.tdpa-challenges{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.tdpa-print-checks{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;align-items:start;margin:0 0 12px;padding:11px 13px;border:1px solid #d8e1ef;border-radius:13px;background:#f7f9fd}
.tdpa-print-checks strong{font-size:12px;color:#43516b}
.tdpa-print-checks ul{margin:0;padding-left:18px;color:#68758f;font-size:11px;line-height:1.45}
.tdpa-print-checks.is-good{border-color:#a9dec1;background:#eefaf3}
.tdpa-print-checks.is-good strong,.tdpa-print-checks.is-good ul{color:#087443}
.tdpa-print-checks.is-warning{border-color:#f3cf87;background:#fff8e8}
.tdpa-print-checks.is-warning strong,.tdpa-print-checks.is-warning ul{color:#8a5708}
.tdpa-challenges span{padding:7px 10px;border-radius:99px;background:#e8f8ef;color:#087443;font-size:12px;font-weight:800}
.tdpa-challenges span:not(.is-done){background:#eef1f6;color:#67738c}
.tdpa-finish{display:block;margin:16px auto 4px;padding:13px 28px;border:0;border-radius:12px;background:linear-gradient(135deg,var(--blue),#0c43c8);color:white;font-weight:900;box-shadow:0 9px 18px rgba(22,93,255,.22);cursor:pointer}
.tdpa-finish:disabled{background:#aab5c9;box-shadow:none;cursor:not-allowed}
.tdpa-status{text-align:center;margin:7px 0 0;font-size:12px;color:#697691}
.tdpa-build-state{text-align:center;margin:10px 0 0;color:#8290a8;font-size:11px}
.tdpa-celebrate{width:min(460px,calc(100% - 30px));border:0;border-radius:24px;text-align:center;padding:34px;box-shadow:0 30px 100px rgba(0,0,0,.3);color:var(--navy)}
.tdpa-celebrate::backdrop{background:rgba(3,12,35,.68)}
.tdpa-celebrate>button{position:absolute;right:14px;top:10px;border:0;background:none;font-size:28px;cursor:pointer}
.tdpa-celebrate__icon{display:grid;place-items:center;margin:0 auto 12px;width:65px;height:65px;border-radius:50%;background:#fff3c4;color:#f4a900;font-size:36px}
.tdpa-celebrate h3{font-size:27px;margin:0 0 8px}
.tdpa-celebrate p{color:#64708c}
.tdpa-celebrate__actions{display:flex;gap:10px;justify-content:center;margin:20px 0}
.tdpa-celebrate__actions button{border:0;border-radius:11px;padding:12px 16px;background:var(--blue);color:#fff;font-weight:800;cursor:pointer}
.tdpa-celebrate__actions button+button{background:#edf2fb;color:var(--navy)}
.tdpa-celebrate small{color:#78849c}
@media(max-width:980px){
    .tdpa-builder__app{grid-template-columns:330px minmax(0,1fr)}
    .tdpa-builder__tools{padding:18px}
    .tdpa-canvas-wrap{height:520px}
    .tdpa-workplane-toolbar button span{display:none}
}
@media(max-width:820px){
    .tdpa-builder__app{grid-template-columns:1fr}
    .tdpa-builder__tools{border-right:0;border-bottom:1px solid var(--line);max-height:none;overflow:visible}
    .tdpa-bases{grid-template-columns:repeat(4,1fr)}
    .tdpa-library>div{grid-template-columns:repeat(6,1fr)}
    .tdpa-builder__stage{padding-top:18px}
    .tdpa-canvas-wrap{height:460px}
}
@media(max-width:560px){
    .tdpa-builder{margin:12px 0;border-radius:18px}
    .tdpa-builder__tools,.tdpa-builder__stage{padding:16px}
    .tdpa-bases{grid-template-columns:1fr 1fr}
    .tdpa-library>div{grid-template-columns:repeat(3,1fr)}
    .tdpa-canvas-wrap{height:390px}
    .tdpa-tip{bottom:8px;font-size:10px;max-width:calc(100% - 20px);white-space:normal;text-align:center}
    .tdpa-progress{align-items:flex-start;flex-direction:column;gap:7px}
    .tdpa-progress>div{width:100%;flex:none}
    .tdpa-workplane-toolbar{left:8px;top:8px}
    .tdpa-view-reset{right:8px;top:8px}
    .tdpa-selection-badge{right:8px;top:50px}
}
