.app-frame{width:100%;max-width:100vw;min-width:0;height:100dvh;min-height:100%;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) auto;background:var(--frame-bg)}
.topbar,.framebar{position:relative;width:100%;max-width:100vw;min-width:0;min-height:calc(54px + var(--safe-t));padding:var(--safe-t) var(--safe-r) 5px var(--safe-l);display:grid;grid-template-columns:minmax(48px,1fr) auto minmax(48px,1fr);align-items:center;gap:8px;background:var(--chrome);border-bottom:1px solid var(--line);z-index:40;backdrop-filter:saturate(150%) blur(18px);-webkit-backdrop-filter:saturate(150%) blur(18px)}
.frame-side{display:flex;align-items:center;min-width:0}.frame-left{justify-content:flex-start}.frame-right{justify-content:flex-end}
.frame-btn,.menu-btn,.close-btn{width:var(--control);height:var(--control);display:grid;place-items:center;border:1px solid transparent;border-radius:12px;background:transparent;cursor:pointer;padding:0}
.frame-btn:hover,.frame-btn:focus-visible,.menu-btn:hover,.menu-btn:focus-visible,.close-btn:hover,.close-btn:focus-visible{background:color-mix(in srgb,var(--text) 8%,transparent);border-color:var(--line);outline:none}.frame-btn:active,.menu-btn:active,.close-btn:active{transform:translateY(1px)}
.frame-btn svg,.menu-btn svg,.close-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round}
.document-title{justify-self:center;position:relative;display:flex;align-items:center;min-width:0;max-width:min(58vw,560px)}.document-title>.app-icon{position:absolute;right:calc(100% + 8px);top:50%;transform:translateY(-50%)}.app-icon{width:30px;height:30px;display:block;flex:none;filter:drop-shadow(0 3px 7px rgba(80,55,150,.14))}
.title-input,.file-pill{width:min(330px,42vw);min-width:90px;height:38px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--chrome) 94%,transparent);padding:0 12px;text-align:center;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.title-input[readonly],.file-pill[readonly]{cursor:default}
.toolstrip-shell{position:relative;z-index:30;min-width:0;background:var(--chrome);border-bottom:1px solid var(--line);backdrop-filter:saturate(150%) blur(18px);-webkit-backdrop-filter:saturate(150%) blur(18px)}
.toolstrip{min-height:52px;display:flex;align-items:center;gap:5px;overflow-x:auto;overflow-y:hidden;padding:4px calc(var(--safe-r) + 14px) 4px var(--safe-l);scrollbar-width:none;-webkit-overflow-scrolling:touch}.toolstrip::-webkit-scrollbar{display:none}
.tool-btn{width:var(--control);height:var(--control);flex:0 0 var(--control);display:inline-grid;place-items:center;border:1px solid transparent;border-radius:11px;background:transparent;padding:0;cursor:pointer}.tool-btn:hover,.tool-btn:focus-visible{background:color-mix(in srgb,var(--text) 8%,transparent);border-color:var(--line);outline:none}.tool-btn:disabled{opacity:.36;cursor:default}.tool-btn svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.tool-btn.text{width:auto;min-width:58px;flex:0 0 auto;padding:0 10px;display:inline-flex;gap:6px;font-weight:650}.tool-btn.active{background:var(--frame-accent-soft);color:var(--frame-active-text);border-color:color-mix(in srgb,var(--frame-accent) 38%,var(--line))}.tool-sep{width:1px;height:28px;background:var(--line);flex:0 0 auto}
.statusbar{position:relative;z-index:25;width:100%;max-width:100vw;min-width:0;min-height:calc(36px + var(--safe-b));display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:3px var(--safe-r) var(--safe-b) var(--safe-l);border-top:1px solid var(--line);background:var(--chrome);font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;backdrop-filter:saturate(150%) blur(18px);-webkit-backdrop-filter:saturate(150%) blur(18px)}.status-text{min-width:68px;overflow:hidden;text-overflow:ellipsis}
.backdrop{position:fixed;inset:0;background:var(--overlay);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:100}.drawer{position:fixed;z-index:110;top:calc(var(--safe-t) + 60px);left:var(--safe-l);width:min(340px,calc(100vw - var(--safe-l) - var(--safe-r)));max-height:calc(100dvh - var(--safe-t) - var(--safe-b) - 72px);overflow:auto;background:var(--chrome);border:1px solid var(--line);border-radius:18px;box-shadow:var(--panel-shadow);padding:12px}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.drawer-title{display:flex;align-items:center;gap:9px;font-weight:750}.drawer-title .app-icon{width:30px;height:30px}.menu-list{display:grid;gap:4px}.menu-item{width:100%;min-height:46px;border:1px solid transparent;border-radius:11px;background:transparent;padding:0 10px;display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:10px;text-align:left;cursor:pointer}.menu-item:hover,.menu-item:focus-visible{background:var(--frame-accent-soft);outline:none}.menu-item:disabled{opacity:.38;cursor:default}.menu-item svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.hint{font-size:11px;color:var(--muted)}.menu-section{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.menu-section-label{padding:2px 5px 7px;color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.appearance-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;border-radius:12px;background:var(--panel)}.appearance-choice{height:36px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--muted);font-size:12px;font-weight:700;cursor:pointer}.appearance-choice.active{background:var(--chrome);border-color:var(--line-strong);color:var(--text);box-shadow:0 1px 5px rgba(0,0,0,.08)}
.sheet{position:fixed;z-index:120;background:var(--chrome);border:1px solid var(--line);border-radius:18px;box-shadow:var(--panel-shadow);padding:14px}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:17px;margin-bottom:11px}.sheet-note{font-size:12px;color:var(--muted);line-height:1.45}
@media(pointer:fine){.topbar,.framebar{min-height:calc(46px + var(--safe-t))}.drawer{top:calc(var(--safe-t) + 52px)}.appearance-choice{height:30px;font-size:11px}.toolstrip{min-height:42px;padding-top:3px;padding-bottom:3px}.tool-btn.text{min-width:52px;padding:0 8px;font-size:13px}.tool-btn svg{width:18px;height:18px}.tool-sep{height:24px}.app-icon{width:26px;height:26px}.title-input,.file-pill{height:34px;font-size:14px}.statusbar{font-size:10.5px}}
@media(max-width:720px){.document-title{max-width:56vw}.app-icon{width:27px;height:27px}.title-input,.file-pill{width:42vw;padding:0 8px}.drawer{top:calc(var(--safe-t) + 58px);border-radius:16px}}
@media(max-width:470px){.document-title>.app-icon{display:none}.document-title{max-width:52vw}.title-input,.file-pill{width:48vw;min-width:86px}.statusbar .status-text{display:none}.drawer{width:calc(100vw - var(--safe-l) - var(--safe-r));padding:10px}}
@media(prefers-reduced-motion:reduce){.frame-btn,.menu-btn,.tool-btn,.close-btn{transition:none}}
