@import url('https://fonts.googleapis.com/css2?family=Jua&family=Gowun+Dodum&display=swap');
:root{font-family:'Gowun Dodum','Apple SD Gothic Neo','Malgun Gothic',sans-serif;color:#283930;background:#f0f6ee;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}.app-shell{height:100dvh;min-height:0;display:flex;flex-direction:column}.topbar{height:74px;flex-shrink:0;background:linear-gradient(116deg,#e2f5d5,#f9fcf3 70%);border-bottom:3px solid #abc99a;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 20px;box-shadow:0 2px 11px #273e2020;z-index:5}.brand{display:flex;align-items:center;gap:11px;white-space:nowrap}.brand-emoji{background:#b7e1a3;width:45px;height:45px;display:grid;place-items:center;border-radius:15px;border:2px solid #7fa96c;font-size:27px;box-shadow:0 4px #7aab7133}.brand strong{display:block;font:26px 'Jua','Malgun Gothic',sans-serif;letter-spacing:-.5px;color:#285b3d}.brand small{display:block;font:12px 'Gowun Dodum',sans-serif;color:#668269;letter-spacing:.1px}.top-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.btn{border:1px solid #cbd8c7;background:white;border-radius:12px;padding:9px 13px;font:15px 'Jua','Malgun Gothic',sans-serif;color:#354a39;cursor:pointer;box-shadow:0 3px 0 #bacbb5;transition:transform .12s,box-shadow .12s,background .12s;white-space:nowrap}.btn:hover{background:#f0faec}.btn:active{transform:translateY(2px);box-shadow:0 1px 0 #bacbb5}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-soft{background:#fffefc}.btn-dark{background:#344d3d;color:white;border-color:#283d30;box-shadow:0 3px #17271c}.btn-dark:hover{background:#45674f}.btn-mint{background:#b5e7a6;color:#24452f;border-color:#8ac57e;box-shadow:0 3px #77ac70}.btn-mint:hover{background:#a3db94}.btn-mini{font-size:13px;padding:5px 9px;border-radius:9px}.btn-small{font-size:14px;padding:6px 10px}.block{display:block;width:100%;text-align:center}.save-status{font-size:12px;color:#68816e;white-space:nowrap;margin-right:8px}.workspace{display:grid;grid-template-columns:minmax(280px,320px) minmax(420px,1fr) minmax(274px,302px);gap:11px;padding:11px;flex:1;min-height:0;height:auto;grid-template-rows:minmax(0,1fr)}.pane,.center-pane{background:#fff;border:1px solid #dce8d5;border-radius:18px;box-shadow:0 4px 14px #20351b0c;min-height:0;overflow:hidden}.pane{display:flex;flex-direction:column}.pane-title{height:49px;min-height:49px;border-bottom:1px solid #e7eee0;padding:8px 14px;display:flex;align-items:center;justify-content:space-between;font:19px 'Jua',sans-serif;color:#345e43}.tabs{display:grid;grid-template-columns:repeat(4,1fr);background:#f3f8f0;padding:6px;gap:4px}.tab{border:0;border-radius:10px;padding:8px 4px;font:16px 'Jua',sans-serif;color:#6d806d;cursor:pointer;background:transparent}.tab.active{background:#d3edc8;color:#26523b;box-shadow:inset 0 -2px #a9d297}.pane-scroll,.right-scroll{overflow:auto;min-height:0;flex:1;overscroll-behavior:contain}.tab-content{padding:14px}.hidden{display:none!important}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:11px}.section-heading strong{font:19px 'Jua',sans-serif}.section-heading.compact{margin-bottom:8px}.tiny-muted{font-size:12px;color:#728272;line-height:1.55;margin:3px 0 10px}.no-margin{margin:0}.stack{display:flex;flex-direction:column;gap:10px}.item-card{border:1px solid #dce5d7;border-radius:13px;padding:11px;background:#fefefb}.item-card.selected{border-color:#7bbd71;box-shadow:0 0 0 2px #a7db9e69}.item-top{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:8px}.item-name{font:16px 'Jua',sans-serif;display:flex;align-items:center;gap:7px;min-width:0}.item-name>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-actions{display:flex;gap:4px}.icon-btn{width:27px;height:27px;border:1px solid #dfebd8;background:white;border-radius:8px;cursor:pointer;color:#59705e;display:grid;place-items:center;font-size:14px}.icon-btn:hover{background:#e9f5e3}.icon-btn.danger:hover{color:#bd4c4c;background:#fff1ed}.dot{width:10px;height:10px;display:inline-block;border-radius:50%;background:#111}.form-grid{display:grid;gap:7px}.cols2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid label,.item-card label,.settings-body label{display:flex;flex-direction:column;gap:4px;color:#667769;font-size:12px;min-width:0}.item-card input,.item-card select,.settings-body input,.settings-body select,.left-bottom select{width:100%;height:33px;background:#fff;border:1px solid #cfdbcc;border-radius:8px;padding:5px 8px;color:#354436;font:13px 'Gowun Dodum',sans-serif;outline:none;min-width:0}.item-card input:focus,.settings-body input:focus,.settings-body select:focus,.left-bottom select:focus{border-color:#82bd74;box-shadow:0 0 0 2px #caedc1}.item-card .expr{height:38px;font:16px 'Times New Roman',serif;margin-bottom:8px}.item-card .wide{margin-bottom:7px}.item-card .rowline{display:flex;align-items:center;gap:6px;margin-top:7px}.item-card .rowline label{flex:1}.item-card .rowline .check{flex:0 auto}.item-card .error{font-size:11px;color:#bd4949;margin-top:4px;display:block}.color-input{width:32px!important;height:31px!important;padding:2px!important;flex-shrink:0}.check{display:flex!important;align-items:center!important;flex-direction:row!important;gap:6px!important;font-size:12px!important;white-space:nowrap;color:#495b4c!important;cursor:pointer}.check input{width:15px!important;height:15px!important;accent-color:#5ba057;flex-shrink:0}.hint{font-size:12px;color:#6f7b70;background:#f4f8f1;border-radius:11px;padding:11px;margin-top:15px;line-height:1.75}.hint strong{font-size:13px;color:#3b6042}.left-bottom{border-top:1px solid #e1ebdc;padding:12px 14px;background:#f9fcf6;max-height:225px;overflow:auto}.left-bottom .form-grid label{font-size:12px;color:#667766}.left-bottom select{margin-top:3px}.left-bottom .btn{margin-top:8px}.intersection-list{max-height:95px;overflow-y:auto;margin-top:8px}.intersection-row{display:flex;justify-content:space-between;align-items:center;padding:4px 2px;gap:4px;border-bottom:1px solid #e6eee2;font-size:12px}.intersection-row button{font-size:12px;border:1px solid #bcd9b5;border-radius:6px;background:#edfae9;color:#40613e;cursor:pointer;padding:3px 7px}.center-pane{display:flex;flex-direction:column;background:#f8fbf6}.canvas-header{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 15px;border-bottom:1px solid #e1e9db;background:white}.canvas-header strong{font:19px 'Jua',sans-serif;display:block;color:#314e35}.canvas-header span{font-size:12px;color:#809085}.toolbox{display:flex;gap:5px}.tool{min-width:43px;padding:4px 6px 5px;background:#f8fbf4;border:1px solid #e1e9dd;border-radius:9px;font-size:20px;cursor:pointer;color:#446049;line-height:1.1}.tool small{display:block;font:10px 'Gowun Dodum',sans-serif}.tool:hover{background:#e4f4dd}.tool.active{border-color:#84c076;background:#d7efcd;color:#235b33}.stage-area{flex:1;min-height:170px;display:flex;justify-content:center;align-items:center;flex-direction:column;padding:18px;overflow:auto;background:radial-gradient(circle,#d6e3d0 1px,transparent 1px) 0 0/19px 19px,#f0f5ed}.paper{width:min(100%,850px);max-height:100%;display:flex;align-items:center;justify-content:center;aspect-ratio:720/510;background:white;box-shadow:0 12px 36px #263a2138,0 2px 5px #263a2114;border:1px solid #e6e8e3;overflow:hidden}.paper svg{width:100%;height:100%;display:block;touch-action:none;user-select:none}.paper svg[data-tool="point"],.paper svg[data-tool="line"],.paper svg[data-tool="text"]{cursor:crosshair}.paper svg[data-tool="pan"]{cursor:grab}.paper svg [data-drag]{cursor:grab}.paper svg [data-drag]:hover{filter:drop-shadow(0 0 2px #87c38e)}.stage-message{margin-top:15px;padding:7px 13px;font-size:12px;color:#4f7352;background:#ffffffde;border-radius:20px;text-align:center}.canvas-footer{height:54px;min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 13px;border-top:1px solid #dee9d7;background:white}.zoom-controls{display:flex;align-items:center;gap:5px;white-space:nowrap}.zoom-controls span{font-size:12px;min-width:45px;text-align:center}.cursor-coords{font-size:12px;color:#627d67;font-variant-numeric:tabular-nums}.footer-note{font-size:11px;color:#8a998e}.settings-box{border-bottom:1px solid #e4ebdf;background:white}.settings-box summary{list-style:none;cursor:pointer;font:17px 'Jua',sans-serif;padding:13px 15px;color:#385a41;display:flex;justify-content:space-between;align-items:center}.settings-box summary::-webkit-details-marker{display:none}.settings-box summary::after{content:'⌄';font-family:sans-serif;color:#7b967c;font-size:18px;transition:transform .12s}.settings-box[open] summary::after{transform:rotate(180deg)}.settings-body{padding:1px 15px 14px;display:flex;flex-direction:column;gap:10px}.settings-body input[type="range"]{padding:0;height:23px;accent-color:#6eaf68}.settings-body label output{color:#4c804e;font-size:12px;margin-left:5px}.toggle-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px 4px}.toast{position:fixed;bottom:19px;left:50%;transform:translateX(-50%) translateY(60px);background:#304c39;color:white;padding:11px 18px;border-radius:15px;font-size:14px;box-shadow:0 7px 24px #0003;z-index:20;opacity:0;pointer-events:none;transition:all .22s}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}code{font-family:Consolas,'Courier New',monospace;background:#f4f7f1;padding:1px 3px;border-radius:4px;font-size:12px}.invalid{border-color:#d77e78!important;background:#fff7f5!important}
@media(max-width:1220px){.workspace{grid-template-columns:minmax(265px,295px) minmax(360px,1fr) 270px;gap:7px;padding:7px}.topbar{padding-inline:12px}.brand strong{font-size:22px}.top-actions .btn{padding:8px 9px}.top-actions .btn-soft span{display:none}.footer-note{display:none}}@media(max-width:1060px){.app-shell{height:auto;min-height:100dvh}.workspace{grid-template-columns:minmax(265px,300px) minmax(420px,1fr);grid-template-rows:minmax(480px,1fr) auto;overflow:auto;height:auto;min-height:calc(100dvh - 74px)}.right-pane{grid-column:1/-1;grid-row:2;min-height:0}.right-scroll{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.settings-box{border-right:1px solid #e9eee4}.left-pane{min-height:480px}.center-pane{min-height:480px}.top-actions{gap:5px}}@media(max-width:750px){.topbar{height:auto;min-height:68px;flex-wrap:wrap;padding:7px 11px}.top-actions{width:100%;justify-content:space-between}.save-status{display:none}.top-actions .btn{font-size:13px;padding:7px}.workspace{display:flex;flex-direction:column;padding:7px;height:auto}.center-pane{order:0;min-height:480px}.left-pane{order:1;min-height:400px;max-height:700px}.right-pane{order:2}.right-scroll{grid-template-columns:1fr}.paper{max-width:100%}.canvas-header{flex-wrap:wrap;justify-content:center}.canvas-header>div:first-child{display:none}.canvas-footer{flex-wrap:wrap;height:auto;min-height:45px}.stage-area{padding:12px}.brand strong{font-size:21px}.brand-emoji{width:36px;height:36px;font-size:21px}.left-bottom{max-height:unset}.pane-scroll{min-height:280px}}

/* 전체 함수 자동 맞춤 */
.zoom-controls{flex-wrap:wrap}.zoom-controls #autoFitBtn{font-family:'Jua',sans-serif;font-size:14px;color:#275236}.autofit-toggle{background:#e9f7e4;border:1px solid #c9e9be;border-radius:10px;padding:9px!important;white-space:normal!important;line-height:1.55}.auto-domain{margin-top:9px!important;margin-bottom:1px!important;white-space:normal!important;font-size:12px!important}.item-card input:disabled{background:#f2f5f0;color:#9aa99a}.settings-body #autoFitSettingsBtn{font-size:15px}.canvas-footer{height:auto;min-height:54px}

/* 수학 조판 미리보기 — STIX 벡터 글리프와 줄분수/근호 레이아웃 */
.math-preview-wrap{display:inline-flex;flex:1;min-width:0;overflow:hidden;align-items:center;max-width:195px;min-height:35px}.mini-math-preview{width:100%;height:35px;max-height:35px;object-fit:contain}.mini-label-preview{display:flex;gap:6px;align-items:center;font-size:12px;color:#7a887e;overflow:hidden;min-height:37px;margin-bottom:5px}.mini-label-preview .mini-math-preview{flex:1;max-width:180px;}

/* 선분 길이 표시 편집 폼 */
.length-fields{display:flex;flex-direction:column;gap:8px;margin-top:9px;padding:10px;border-radius:10px;background:#f3f8ef;border:1px solid #d9ebd3}
.length-fields input{font-family:'Times New Roman',serif!important}
.item-card [data-action="toggle-length"]{font-size:13px}
.paper svg [data-drag="dimension"]{cursor:ns-resize}
