:root{color:#20272b;background:#f4f6f8;font-family:Inter,Segoe UI,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow:hidden}button,textarea{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-rows:auto minmax(0,1fr);height:100vh;min-height:620px}.topbar{display:grid;grid-template-columns:max-content minmax(360px,560px) max-content;align-items:center;justify-content:space-between;gap:24px;min-height:62px;padding:9px 14px 9px 16px;border-bottom:1px solid #dce2e5;background:#fff}.brand,.topbar-actions,.pane-header,.pane-header>div,.stats-strip>div,.local-status,.mobile-tabs button,.empty-state,.diagnostic-item{display:flex;align-items:center}.brand{gap:10px;min-width:0}.brand img{width:36px;height:36px;border-radius:6px}h1,h2,p{margin:0}h1{overflow:hidden;color:#183338;font-size:16px;font-weight:700;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap}h2{color:#2f3a3f;font-size:13px;font-weight:700;letter-spacing:0}.local-status{gap:4px;margin-top:2px;color:#4f6b66;font-size:11px}.topbar-actions{gap:6px}.icon-button,.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:0 10px;border:1px solid #cbd5d9;border-radius:6px;color:#344247;background:#fff}.icon-button:hover,.icon-button:focus-visible{border-color:#7e9ba0;background:#f2f7f7}.icon-button.compact{width:32px;min-height:30px;padding:0}.primary-button{border-color:#123f46;color:#fff;background:#123f46}.primary-button:hover,.primary-button:focus-visible{background:#1a555e}.primary-button:disabled{cursor:not-allowed;border-color:#c7d0d3;color:#7b898d;background:#e3e8ea}.stats-strip{display:grid;grid-template-columns:repeat(4,minmax(74px,1fr));overflow:hidden;border:1px solid #dbe3e5;border-radius:6px;background:#f7f9f9}.stats-strip>div{justify-content:center;gap:6px;min-height:34px;border-right:1px solid #e4e9eb;color:#526268;font-size:12px}.stats-strip>div:last-child{border-right:0}.stats-strip strong{min-width:14px;color:#233035;font-size:13px;text-align:center}.stats-strip .warning,.diagnostic-item.warning{color:#8a5700}.stats-strip .error,.diagnostic-item.error{color:#a13232}.mobile-tabs{display:none}.workbench{display:grid;grid-template-columns:minmax(0,1fr) 360px;min-height:0}.editor-area{display:grid;grid-template-rows:minmax(0,1fr);min-width:0;min-height:0}.workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:0}.editor-pane{display:grid;grid-template-rows:44px minmax(0,1fr);min-width:0;min-height:0;border-right:1px solid #dce2e5;background:#fff}.editor-pane:last-child{border-right:0}.pane-header{justify-content:space-between;padding:6px 10px 6px 16px;border-bottom:1px solid #e3e8ea;background:#f8fafb}.pane-header>div{gap:8px}.pane-header span,.diagnostics header span{color:#76858a;font-size:11px}textarea{width:100%;min-height:100%;resize:none;padding:18px;border:0;border-radius:0;outline:none;color:#20282c;background:#fff;font-family:Cascadia Code,Microsoft YaHei UI,monospace;font-size:14px;line-height:1.7;letter-spacing:0;tab-size:2}textarea:focus-visible{box-shadow:inset 0 0 0 2px #79aeb1}textarea[readonly]{background:#fbfcfc}.diagnostics{display:grid;grid-template-rows:44px minmax(0,1fr);min-height:0;border-left:1px solid #d6dee1;background:#fff}.diagnostics header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;height:44px;padding:13px 14px;border-bottom:1px solid #e4e9eb;background:#f8fafb}.diagnostic-list{overflow:auto}.empty-state{justify-content:center;gap:7px;min-height:100%;color:#58706a;font-size:13px}.diagnostic-item{display:grid;grid-template-columns:18px minmax(0,1fr) max-content;gap:5px 8px;min-height:70px;padding:11px 12px;border-bottom:1px solid #edf0f1;color:#435259;font-size:12px}.diagnostic-item.fix{color:#37605d}.diagnostic-item code{overflow:hidden;color:inherit;font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.diagnostic-item span{grid-column:2 / 4;color:#536269;line-height:1.5}.diagnostic-item small{grid-column:2 / 4;justify-self:end;color:#7a878c;font-size:11px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(max-width:720px){body{overflow:auto}.app-shell{grid-template-rows:auto minmax(0,1fr);height:auto;min-height:100vh}.topbar{grid-template-columns:minmax(0,1fr) max-content;gap:8px;min-height:58px;padding:8px 10px 0}.brand img{width:34px;height:34px}h1{max-width:190px;font-size:14px}.desktop-label{display:none}.icon-button{width:34px;padding:0}.topbar-actions{grid-column:2;grid-row:1}.stats-strip{grid-column:1 / -1;grid-row:2;grid-template-columns:repeat(4,minmax(0,1fr));width:calc(100% + 20px);margin-left:-10px;border-width:1px 0 0;border-radius:0;background:#fff}.stats-strip>div{min-height:40px;gap:4px}.stats-strip span{display:none}.workbench{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(440px,1fr) minmax(180px,32vh);min-height:calc(100vh - 99px)}.editor-area{grid-template-rows:auto minmax(0,1fr)}.mobile-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #dce2e5;background:#fff}.mobile-tabs button{justify-content:center;gap:6px;height:40px;border:0;border-bottom:2px solid transparent;color:#69787d;background:transparent;font-size:13px}.mobile-tabs button.active{border-bottom-color:#23727a;color:#164d53;font-weight:700}.workspace{display:block}.editor-pane{height:100%;border-right:0}.editor-pane.mobile-hidden{display:none}.diagnostic-item{grid-template-columns:18px minmax(0,1fr) max-content}.diagnostic-item code{overflow:hidden;text-overflow:ellipsis}.diagnostic-item span{grid-column:2 / 4}.diagnostic-item small{grid-column:2 / 4;justify-self:end}.diagnostics{grid-template-rows:38px minmax(0,1fr);border-top:1px solid #d6dee1;border-left:0}.diagnostics header{height:38px;padding:10px 14px}}@media(min-width:721px)and (max-width:1100px){.topbar{grid-template-columns:max-content minmax(300px,1fr) max-content;gap:12px}.stats-strip span{display:none}.workbench{grid-template-columns:minmax(0,1fr) 320px}}
