:root{font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:#203f53;background:#edf3f8}
*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer}
[hidden]{display:none!important}
.geo-header{height:69px;background:#123f5e;color:#fff;display:flex;align-items:center;padding:0 22px;gap:20px;box-shadow:0 3px 12px #23475a1d}
.geo-header a{color:#e6f2fa;text-decoration:none}.back-link{border:1px solid #7199b3;border-radius:10px;padding:10px 14px;font-size:13px}
.brand{display:flex;gap:11px;align-items:center}.brand-mark{display:grid;place-items:center;width:39px;height:39px;font-weight:900;border-radius:11px;background:#e8c5c7;color:#163c54;font-size:23px}.brand strong,.brand small{display:block}.brand strong{font-size:19px;letter-spacing:.3px}.brand small{font-size:10px;color:#bfd7e8}.header-right{margin-left:auto;display:flex;align-items:center;gap:19px;font-size:12px}.header-right span{border:1px solid #6d91ab;border-radius:20px;padding:8px 12px}
.geo-shell{position:relative;height:calc(100dvh - 101px);padding:16px 18px 10px}
.stage{height:100%;border-radius:19px;background:#fff;border:1px solid #d2e2ed;box-shadow:0 5px 30px #36607c12;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.stage-top{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:15px 20px;border-bottom:1px solid #e6eff4}.stage-top h1{font-size:18px;margin:0 0 4px;font-weight:800}.stage-top p{font-size:12px;color:#7894a5;margin:0}.mode-switch{display:flex;gap:6px;background:#eef5fa;padding:4px;border-radius:12px}.mode-switch button{background:transparent;border:0;border-radius:9px;padding:9px 15px;color:#40667f;font-size:13px}.mode-switch .active{background:#205b7d;color:white;box-shadow:0 1px 4px #174e6d25}
#geo-board{flex:1;width:100%;min-height:200px;background:#fff!important;border:0!important}
.stage-bottom{border-top:1px solid #e5eff5;padding:12px 17px;display:flex;gap:12px;justify-content:space-between;color:#69869a;font-size:12px}.stage-bottom #geo-status{font-weight:600;color:#23698f}
.geo-panel{position:absolute;left:auto;right:33px;top:114px;width:350px;max-height:calc(100dvh - 210px);overflow-y:auto;background:#fbfdff;border-radius:16px;box-shadow:0 17px 48px #15465a38;border:1px solid #c9dfea;z-index:20}
.panel-title{position:sticky;top:0;z-index:2;background:#184e6d;color:white;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;cursor:grab;user-select:none;touch-action:none}.panel-title strong{display:block;font-size:15px}.panel-title small{display:block;font-size:10px;color:#c7deeb;margin-top:3px}.panel-title button{border:1px solid #91bad0;background:#346984;color:white;border-radius:8px;min-width:36px;min-height:36px;font-size:22px;touch-action:manipulation}
#geo-panel-body{padding:17px}.scene-banner{border-bottom:1px solid #e0ebf1;padding-bottom:12px;margin-bottom:14px}.scene-banner span{display:block;text-transform:uppercase;font-size:10px;color:#7291a5;margin-bottom:5px}.scene-banner strong{font-size:15px}.scene-banner p,.caption{font-size:12px;line-height:1.7;color:#678397;margin:6px 0 0}
.field{display:grid;gap:8px;font-size:12px;font-weight:600;margin-bottom:15px;color:#3e627a}.field select{padding:10px;border:1px solid #c8dce8;background:#fff;border-radius:10px;color:#204d6e;min-width:0}
.slider-row{display:grid;grid-template-columns:85px 1fr 36px;align-items:center;gap:10px;margin-bottom:14px;font-size:13px;color:#44677e}.slider-row input{width:100%;accent-color:#297da8;min-height:26px}.slider-row output{text-align:right;font-weight:700;color:#246e98}
.toggle{display:flex;align-items:center;gap:9px;font-size:12px;color:#365a71;margin:11px 0}.toggle input{accent-color:#267da2;width:17px;height:17px}
.math-readout{background:#eaf4fa;border-radius:11px;padding:12px;line-height:1.8;color:#224d69;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;margin:13px 0;font-variant-numeric:tabular-nums}
button.secondary{width:100%;padding:10px 12px;border:1px solid #b8d2e3;color:#285c7b;background:#fff;border-radius:9px}
.lesson-note{padding:12px 13px;border-radius:11px;background:#f5f9fc;margin-top:15px;border:1px solid #e0ebf1}.lesson-note strong{font-size:13px}.lesson-note p{font-size:12px;color:#698599;line-height:1.7;margin:6px 0 0}
.panel-bottom{display:flex;gap:8px;margin-top:14px}.panel-bottom button{flex:1;border:1px solid #bfd5e1;border-radius:9px;background:#eaf3f9;color:#275a77;padding:10px 6px;font-size:12px}
#geo-return{position:fixed;bottom:62px;right:27px;border:1px solid #a9cde0;background:#205e81;color:white;padding:12px 18px;border-radius:30px;z-index:22;box-shadow:0 9px 30px #1f536639}
footer{height:32px;display:flex;align-items:center;justify-content:center;gap:7px;color:#7993a3;font-size:10px}footer a{color:#426f88}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ecb469;outline-offset:2px}
@media(max-width:950px){.geo-shell{padding:8px}.geo-panel{top:95px;right:17px;width:312px;max-height:calc(100dvh - 149px)}.stage-top{padding:12px 14px}.stage-top h1{font-size:16px}}
@media(max-width:630px){.header-right{display:none}.geo-header{height:61px;gap:12px;padding:0 10px}.back-link{font-size:11px;padding:8px}.geo-shell{height:calc(100dvh - 86px)}.stage-top{flex-wrap:wrap;gap:8px}.mode-switch{width:100%}.mode-switch button{flex:1}.geo-panel{top:122px;right:8px;width:min(330px,calc(100vw - 16px));max-height:calc(100dvh - 177px)}.stage-bottom{display:block;padding:7px 12px}.stage-bottom span:last-child{display:none}footer{height:25px;font-size:9px}}


/* V0.33 geometry coordinates, exact symbol data and free construction. */
.axes-tools{border:1px solid #d6e5ef;border-radius:10px;background:#f4f9fc;padding:5px 11px 9px;margin-bottom:13px}
.axes-tools .toggle{margin:7px 0}
.axes-hint{font-size:11px;color:#678598;line-height:1.6;margin:5px 0 0}
.free-tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:11px 0}
.free-tool-grid button{border:1px solid #c6dbea;border-radius:9px;background:#f1f7fb;color:#205472;padding:11px 5px;min-height:41px;font-size:12px;touch-action:manipulation}
.free-tool-grid button.active{color:#fff;background:#235e80;border-color:#235e80}
.free-actions{display:flex;gap:6px;margin-top:12px}
.free-actions button{flex:1;min-width:0;border:1px solid #b5cfde;border-radius:9px;background:#eaf4f9;color:#244e6c;padding:10px 3px;font-size:12px}
#free-math{max-height:125px;overflow:auto;font-size:12px}
.mode-switch{flex-wrap:wrap}
.mode-switch button{white-space:nowrap;min-height:39px}
#geo-board .JXGtext{font-family:"Microsoft YaHei",Arial,sans-serif!important}
@media(max-width:630px){.mode-switch button{min-width:0;font-size:11px;padding:9px 4px}.axes-tools .toggle{font-size:12px}}

/* V0.34 advanced conics: compact classroom controls across landscape iPads */
.mode-switch{column-gap:4px;row-gap:5px}
.mode-switch button{font-size:12px;padding:9px 12px;min-height:39px}
#ellipse-advanced-math:empty{display:none}
#ellipse-advanced-math{margin-bottom:13px}
#hyperbola-tools .math-readout,#parabola-tools .math-readout{line-height:1.9}
#ellipse-chord-row[hidden]{display:none}
.free-actions{flex-wrap:wrap}
.free-actions button{flex:1 1 29%;min-height:38px}
@media(max-width:950px){.mode-switch button{padding:8px 9px}}
@media(max-width:630px){.mode-switch button{font-size:11px;padding:8px 7px;flex:1 1 27%}}
