:root{--bg: #FFF8F0;--fg: #333;--muted: #999;--accent: #FF6B6B;--accent-hover: #FF5252;--card: #FFFFFF;--border: #E8E0D8;--radius: 12px;--radius-sm: 8px;--shadow: 0 2px 8px rgba(0,0,0,.08);--shadow-lg: 0 4px 16px rgba(0,0,0,.12);--icon-size: 44px;--icon-size-tablet: 56px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--float-bg: rgba(255, 240, 232, .88);--float-bg-solid: rgba(255, 248, 240, .92);--float-radius: 20px;--float-shadow: 0 2px 12px rgba(0,0,0,.15);--float-gap: 6px;--float-offset: 8px}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none;touch-action:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--fg);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-overflow-scrolling:auto;position:fixed;top:0;left:0}.app{position:relative;width:100%;height:100%;height:100dvh;overflow:hidden}.canvas-container{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#e8e0d8;z-index:1;touch-action:none}#drawing-canvas{background:#fff;touch-action:none;cursor:crosshair;-webkit-touch-callout:none;-webkit-user-select:none}.icon-btn{width:var(--icon-size);height:var(--icon-size);border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--fg);transition:background .15s;flex-shrink:0}.icon-btn:active{background:#00000014;transform:scale(.95)}.floating-header{position:absolute;top:calc(var(--float-offset) + var(--safe-top));right:calc(var(--float-offset) + var(--safe-right));display:flex;gap:var(--float-gap);z-index:10;background:var(--float-bg);border-radius:var(--float-radius);padding:4px;box-shadow:var(--float-shadow)}.floating-toolbar{position:absolute;left:calc(var(--float-offset) + var(--safe-left));top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;padding:6px;gap:4px;background:var(--float-bg);border-radius:var(--float-radius);box-shadow:var(--float-shadow);z-index:10}.toolbar-divider{width:28px;height:1px;background:var(--border);margin:2px 0;flex-shrink:0}.tool-btn{width:var(--icon-size);height:var(--icon-size);border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--muted);transition:all .15s;flex-shrink:0}.tool-btn:active{transform:scale(.92)}.tool-btn.active{background:var(--accent);color:#fff;box-shadow:var(--shadow)}.floating-bottom-bar{position:absolute;bottom:calc(var(--float-offset) + var(--safe-bottom));left:50%;transform:translate(-50%);display:flex;align-items:center;padding:6px 10px;gap:8px;background:var(--float-bg-solid);border-radius:var(--float-radius);box-shadow:var(--float-shadow);z-index:10;max-width:calc(100vw - var(--float-offset) * 2 - var(--safe-left) - var(--safe-right));overflow-x:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.bar-divider{width:1px;height:28px;background:var(--border);flex-shrink:0}.color-picker{display:flex;align-items:center;gap:4px;flex-shrink:0}.color-swatch{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .15s,border-color .15s;flex-shrink:0}.color-swatch:active{transform:scale(.9)}.color-swatch.active{border-color:var(--fg);transform:scale(1.15)}.color-wheel-btn{width:26px;height:26px;border-radius:50%;border:2px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--muted);transition:transform .15s;flex-shrink:0;background:var(--card)}.color-wheel-btn:active{transform:scale(.9)}.color-picker-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:50;background:#0000004d;display:flex;align-items:center;justify-content:center}.color-picker-overlay.hidden{display:none}.color-picker-panel{background:var(--card);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:14px;width:320px;max-width:90vw}.color-bar-wrap{display:flex;align-items:center;gap:8px}.color-bar-label{font-size:13px;color:var(--muted);white-space:nowrap;width:28px;flex-shrink:0}.color-bar-canvas{cursor:pointer;touch-action:none;border-radius:6px;flex:1;min-width:0;height:30px}.color-picker-preview-row{display:flex;align-items:center;gap:12px}.color-picker-preview{width:40px;height:40px;border-radius:var(--radius-sm);border:2px solid var(--border);overflow:hidden;flex-shrink:0}.color-picker-preview-color{width:100%;height:100%}.color-picker-done{flex:1;padding:10px 0;border:none;border-radius:var(--radius-sm);background:var(--accent);color:#fff;font-size:15px;font-weight:600;cursor:pointer;min-height:44px}.color-picker-done:active{transform:scale(.96)}.export-panel{background:var(--card);border-radius:var(--radius);padding:16px;width:90%;max-width:600px;max-height:85vh;box-shadow:var(--shadow-lg);display:flex;flex-direction:column}.export-img-wrap{flex:1;overflow:auto;min-height:0;margin:8px 0;text-align:center}.export-img-wrap img{max-width:100%;max-height:60vh;object-fit:contain;border-radius:var(--radius-sm)}.export-hint{text-align:center;color:var(--muted);font-size:14px;padding:4px 0}.size-picker{display:flex;align-items:center;gap:6px;flex-shrink:0}.size-preview{width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.size-preview-dot{border-radius:50%;background:var(--fg)}.size-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:80px;height:6px;border-radius:3px;background:var(--border);outline:none;cursor:pointer}.size-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid white;box-shadow:0 1px 4px #0003}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-overflow-scrolling:touch}.dialog-overlay.hidden{display:none}#confirm-dialog{z-index:200}.dialog{background:var(--card);border-radius:var(--radius);padding:24px;min-width:280px;max-width:90vw;box-shadow:var(--shadow-lg)}.dialog-msg{font-size:16px;margin-bottom:20px;text-align:center}.dialog-btns{display:flex;gap:12px;justify-content:center}.dialog-btn{padding:12px 32px;border:none;border-radius:var(--radius-sm);font-size:16px;font-weight:600;cursor:pointer;transition:transform .1s;min-height:44px}.dialog-btn:active{transform:scale(.95)}.dialog-btn.cancel{background:var(--border);color:var(--fg)}.dialog-btn.ok{background:var(--accent);color:#fff}.gallery-page{position:fixed;top:0;left:0;width:100%;height:100%;height:100dvh;background:var(--bg);z-index:90;display:flex;flex-direction:column;overflow:hidden}.gallery-page.hidden{display:none}.gallery-page-header{display:flex;align-items:center;gap:8px;padding:8px 12px;padding-top:calc(8px + var(--safe-top));padding-left:calc(12px + var(--safe-left));background:var(--header-bg);border-bottom:1px solid var(--border);flex-shrink:0}.gallery-page-header h2{font-size:18px;font-weight:700;color:var(--accent)}.gallery-panel{background:var(--card);border-radius:var(--radius);padding:16px;width:90%;max-width:700px;max-height:80vh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;box-shadow:var(--shadow-lg)}.gallery-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.gallery-header h2{font-size:18px}.gallery-grid{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;align-content:start}.gallery-item{border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border);background:#f5f5f5;display:flex;flex-direction:column}.gallery-item-img{width:100%;aspect-ratio:4/3;object-fit:contain;background:#fff}.gallery-item-time{font-size:11px;color:var(--muted);padding:4px 8px 0}.gallery-item-actions{display:flex;gap:0;padding:4px 4px 6px}.gallery-item-actions button{flex:1;border:none;background:transparent;cursor:pointer;font-size:12px;color:var(--muted);padding:6px 0;border-radius:4px;transition:all .15s}.gallery-item-actions button:active{background:#0000000f;transform:scale(.95)}.gallery-item-actions .gallery-btn-open{color:var(--accent);font-weight:600}.gallery-item-actions .gallery-btn-delete{color:#e74c3c}@media(pointer:coarse),(min-width:768px){:root{--icon-size: var(--icon-size-tablet);--float-offset: 12px}.tool-btn,.icon-btn{width:var(--icon-size-tablet);height:var(--icon-size-tablet)}.color-swatch,.color-wheel-btn{width:36px;height:36px}.color-bar-canvas{height:36px}.size-slider{width:100px;height:8px}.size-slider::-webkit-slider-thumb{width:28px;height:28px}.size-preview{width:30px;height:30px}.dialog-btn{min-height:50px;padding:14px 36px;font-size:17px}}@media(orientation:portrait){.floating-toolbar{top:calc(48px + var(--safe-top) + var(--float-offset));left:50%;transform:translate(-50%);flex-direction:row;padding:4px 6px}.toolbar-divider{width:1px;height:28px;margin:0 2px}.floating-bottom-bar{left:calc(var(--float-offset) + var(--safe-left));right:calc(var(--float-offset) + var(--safe-right));transform:none;max-width:none;flex-wrap:wrap;justify-content:center;padding:6px 8px;gap:6px}.color-picker{flex-wrap:wrap}}
