.socratic-ladder-layer{position:absolute;inset:0;z-index:31;pointer-events:none;overflow:hidden}
.socratic-ladder{position:absolute;pointer-events:auto;box-sizing:border-box;border:1px solid #a7bac1;border-radius:16px;background:#f8fbfa;color:#20343c;box-shadow:0 16px 38px rgb(28 52 60 / .18);overflow:auto}
.socratic-ladder--draft{inset:8px;width:auto!important;height:auto!important;padding:16px}.socratic-ladder--approved{padding:14px}
.socratic-ladder__header{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 10px;border-radius:10px;background:#edf5f2}
.socratic-ladder__header strong{font-size:17px}.socratic-ladder__header span{font-size:12px;font-weight:800}.socratic-ladder__header .is-linked{color:#1d6b52}.socratic-ladder__header .is-stale{color:#a03d3d}
.socratic-ladder__base{margin:12px 0;padding:10px;border-left:4px solid #416c79;background:#fff;font-weight:750}.socratic-ladder__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.socratic-ladder__step{position:relative;display:grid;gap:6px;min-width:0;padding:12px 12px 12px 48px;border:1px solid #c4d1d5;border-radius:13px;background:#fff}
.socratic-ladder__step:not(:last-child)::after{content:'→';position:absolute;right:-13px;top:50%;z-index:1;width:24px;height:24px;border-radius:50%;background:#315d6a;color:#fff;text-align:center;line-height:24px;font-weight:900}
.socratic-ladder__number{position:absolute;left:12px;top:12px;display:grid;width:26px;height:26px;place-items:center;border-radius:50%;background:#315d6a;color:#fff;font-weight:900}
.socratic-ladder__step h3,.socratic-ladder__step p{margin:0}.socratic-ladder__step p{min-height:38px;color:#52666e;font-size:13px}.socratic-ladder__step label{font-size:12px;font-weight:850}
.socratic-ladder__step textarea,.socratic-ladder__step select{box-sizing:border-box;width:100%;min-height:44px;border:1px solid #9fb2ba;border-radius:9px;background:#fff;color:#20343c;font:inherit;padding:9px}.socratic-ladder__step textarea{resize:vertical}
.socratic-ladder__step.is-clarify{border-top:4px solid #377b75}.socratic-ladder__step.is-reason{border-top:4px solid #426fa2}.socratic-ladder__step.is-counterexample{border-top:4px solid #9a5b66}.socratic-ladder__step.is-transfer{border-top:4px solid #856d2f}
.socratic-ladder__error{min-height:20px;margin:12px 0;color:#8b3838;font-weight:750}.socratic-ladder__actions{display:flex;justify-content:flex-end;gap:8px}.socratic-ladder__actions button{min-height:44px;padding:0 16px;border:1px solid #a9bbc2;border-radius:10px;background:#fff;color:#233640;font:inherit;font-weight:850;cursor:pointer}.socratic-ladder__actions .is-primary{border-color:#315d6a;background:#315d6a;color:#fff}
.socratic-ladder__approved-list{display:grid;gap:9px;margin:12px 0;padding:0;list-style:none;counter-reset:ladder}.socratic-ladder__approved-list li{position:relative;padding:10px 10px 10px 46px;border:1px solid #c4d1d5;border-radius:11px;background:#fff}.socratic-ladder__approved-list li::before{counter-increment:ladder;content:counter(ladder);position:absolute;left:12px;top:10px;display:grid;width:25px;height:25px;place-items:center;border-radius:50%;background:#315d6a;color:#fff;font-weight:900}.socratic-ladder__approved-list p{margin:5px 0}.socratic-ladder__approved-list small{font-weight:750;color:#52666e}
@media(max-width:600px){.socratic-ladder--draft{padding:10px}.socratic-ladder__list{grid-template-columns:1fr}.socratic-ladder__step:not(:last-child)::after{content:'↓';right:auto;left:50%;top:auto;bottom:-18px}.socratic-ladder__actions{display:grid;grid-template-columns:1fr}.socratic-ladder__actions button{width:100%}}
@media print{.socratic-ladder-layer{position:static;overflow:visible}.socratic-ladder--draft{display:none}.socratic-ladder--approved{position:static!important;width:auto!important;height:auto!important;box-shadow:none;break-inside:avoid}}
@media(forced-colors:active){.socratic-ladder,.socratic-ladder__step,.socratic-ladder__approved-list li{border:2px solid CanvasText}.socratic-ladder__number,.socratic-ladder__approved-list li::before{forced-color-adjust:none;background:CanvasText;color:Canvas}.socratic-ladder__step:not(:last-child)::after{border:1px solid CanvasText}}
