html,body,#root{height:100%;margin:0}body{background:#d9dde3;font-family:system-ui,-apple-system,Apple SD Gothic Neo,Malgun Gothic,sans-serif;overflow:hidden;overscroll-behavior:none}.app-header{position:fixed;top:8px;left:8px;right:8px;z-index:10;display:flex;align-items:center;gap:12px;pointer-events:none}.app-header>*{pointer-events:auto}.app-header h1{margin:0;font-size:18px;padding:4px 10px;background:#ffffffe6;border-radius:8px}.app-header nav{padding:4px 10px;background:#ffffffe6;border-radius:8px}.app-header .admin-menu-button{margin-left:auto;background:#ffffffe6}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:6px;border:1px solid #b0b7c3;border-radius:8px;background:#fff;cursor:pointer}.icon-button img{max-width:100%;max-height:100%;object-fit:contain;pointer-events:none}.icon-button:disabled{opacity:.35;cursor:not-allowed}.pass-through,.pass-through *{pointer-events:none}.draft-move{position:fixed;z-index:11;width:32px;height:32px;padding:5px;cursor:grab;touch-action:none}.draft-move:active{cursor:grabbing}.width-slider{font-size:13px}.width-slider input{width:96px}.width-value{min-width:34px;font-variant-numeric:tabular-nums}.zoom-level{min-width:44px;text-align:center;font-size:13px;font-variant-numeric:tabular-nums}.consent-screen{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:40;box-sizing:border-box;width:min(440px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;padding:20px 22px;background:#fff;border-radius:12px;box-shadow:0 0 0 100vmax #00000073}.consent-screen h2{margin-top:0;font-size:18px}.consent-screen dl{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:14px}.consent-screen dt{color:#666}.consent-screen dd{margin:0}.canvas-screen{position:fixed;inset:0;touch-action:none}.canvas-error{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);padding:12px 16px;background:#fff;border-radius:8px}.minimap{position:fixed;right:12px;bottom:12px;width:160px;height:90px;background:#fff;border:1px solid #b0b7c3;border-radius:4px;overflow:hidden;z-index:10}.minimap canvas{width:100%;height:100%;image-rendering:pixelated;display:block}.minimap-view{position:absolute;border:1.5px solid #e53935;box-sizing:border-box;pointer-events:none}.toolbar{position:fixed;left:50%;bottom:12px;transform:translate(-50%);z-index:10;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;max-width:calc(100vw - 200px);padding:6px 8px;background:#fffffff2;border-radius:10px;box-shadow:0 1px 4px #00000026}.toolbar-group{display:flex;align-items:center;gap:4px}.toolbar button[aria-pressed=true],.toolbar button[aria-checked=true]{outline:2px solid #3949ab}.toolbar .swatch{width:20px;height:20px;border:1px solid #b0b7c3;border-radius:50%;padding:0}.toolbar-hint{font-size:13px;color:#5f6673}.draft-actions{position:fixed;z-index:11;display:flex;align-items:center;gap:4px}.draft-actions button{height:32px;padding:0 12px;font-size:14px;white-space:nowrap;border-radius:8px;border:1px solid #b0b7c3;background:#fff}.draft-note{font-size:12px;padding:2px 6px;background:#fffffff2;border-radius:6px;white-space:nowrap}.text-draft{position:fixed;z-index:11;margin:0;padding:0;box-sizing:content-box;border:1px dashed #5c6bc0;background:transparent;line-height:1;resize:none;overflow:hidden;outline:none;white-space:pre}.draft-notice{position:fixed;left:50%;bottom:64px;transform:translate(-50%);z-index:12;margin:0;padding:6px 12px;background:#263238;color:#fff;border-radius:8px;font-size:14px}.status-bar{position:fixed;top:8px;left:50%;transform:translate(-50%);z-index:10;display:flex;flex-wrap:wrap;justify-content:center;gap:4px 12px;max-width:calc(100vw - 24px);padding:4px 12px;background:#ffffffe6;border-radius:8px;font-size:14px;pointer-events:none}.status-hint{color:#5f6673}.turn-warning{position:fixed;top:52px;left:8px;z-index:11;padding:8px 14px;background:#b71c1ceb;color:#fff;border-radius:10px;pointer-events:none}.turn-warning strong{display:block;font-size:40px;font-variant-numeric:tabular-nums;line-height:1.1}.turn-warning p{margin:4px 0 0;font-size:14px}@media(max-width:720px){.status-bar{top:48px}.turn-warning{top:92px}}.mine-panel{position:fixed;right:12px;bottom:112px;z-index:12;width:260px;max-width:calc(100vw - 24px);padding:10px 12px;background:#fffffff7;border-radius:10px;box-shadow:0 1px 4px #00000026;font-size:14px}.mine-panel p{margin:6px 0}.mine-header,.mine-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px}.mine-icons{display:flex;gap:6px}.mine-confirm{margin-top:8px;padding:8px;border:1px solid #e53935;border-radius:8px}.mine-confirm button+button{margin-left:6px}.mine-notice{color:#37474f}.admin-screen{position:fixed;inset:0;overflow:auto;padding:16px;background:#fff}.admin-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.admin-tabs{display:flex;gap:8px;margin:8px 0}.admin-tabs button[aria-pressed=true]{font-weight:700}.admin-list{list-style:none;padding:0;display:grid;gap:12px}.admin-item{display:flex;gap:16px;align-items:flex-start;padding:12px;border:1px solid #d9dde3;border-radius:8px}.admin-item dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;flex:1}.admin-item dt{color:#666}.admin-item dd{margin:0}.admin-actions{display:flex;flex-direction:column;gap:8px}.admin-drawer{position:fixed;top:0;right:0;bottom:0;z-index:30;width:min(640px,100vw);box-shadow:-2px 0 12px #0003}.admin-drawer .admin-screen{position:absolute;box-sizing:border-box}.admin-log{list-style:none;padding:0;margin:0;font-size:14px}.admin-log li{padding:6px 0;border-bottom:1px solid #eceff3}.admin-log time{color:#666}.font-picker{position:relative}.font-picker-button{display:flex;align-items:center;height:28px;padding:0 6px}.font-picker img{height:20px;width:auto}.font-picker-list{position:absolute;bottom:calc(100% + 6px);left:0;z-index:12;margin:0;padding:4px;list-style:none;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0003;outline:none}.font-picker-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 8px;border-radius:6px;cursor:pointer;white-space:nowrap}.font-picker-list li img{height:24px}.font-picker-list li span{font-size:12px;color:#5f6673}.font-picker-list li.active{background:#e8eaf6}.font-picker-list li[aria-selected=true]{outline:2px solid #3949ab}
