:root{--app-bg:#f1f5f9;--panel-bg:#fff;--text-main:#0f172a;--text-muted:#64748b;--text:var(--text-main);--text-secondary:var(--text-muted);--primary:#2563eb;--primary-hover:#1d4ed8;--border:#e2e8f0;--btn-bg:transparent;--btn-hover:#0000000a;--btn-active:#e3f2fd;--btn-active-text:#1976d2;--danger:#d32f2f;--danger-hover:#ffebee;--surface:var(--panel-bg);--desk-bg:var(--app-bg);--shadow-sm:0 1px 3px #0000001a;--shadow-md:0 4px 6px -1px #0000001a;--shadow-canvas:0 10px 25px -5px #0000001a;--shadow-lg:0 10px 20px #00000030, 0 6px 6px #0000003b;--radius:8px;--grid:#e0e0e0;--balloon:#1976d2;--weldnum:#0e4781}body.dark-mode{--app-bg:#1e1e1e;--panel-bg:#2d2d2d;--text-main:#f8fafc;--text-muted:#a0a0a0;--text:var(--text-main);--text-secondary:var(--text-muted);--border:#444;--shadow-sm:0 1px 3px #00000080;--shadow-md:0 4px 6px -1px #0009;--shadow-canvas:0 0 0 1px #444, 0 10px 25px -5px #000c;--primary:#3b82f6;--primary-hover:#60a5fa;--btn-hover:#ffffff14;--btn-active:#3b82f629;--btn-active-text:#60a5fa;--danger:#ef4444;--danger-hover:#ef44441f;--surface:var(--panel-bg);--desk-bg:var(--app-bg)}html,body{width:100vw;height:100vh;margin:0;padding:0;overflow:hidden!important}body{background-color:var(--app-bg);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;flex-direction:column;align-items:center;width:100vw;height:100vh;margin:0;padding:0;font-family:Inter,system-ui,-apple-system,sans-serif;transition:background-color .3s,color .3s;display:block;overflow:hidden!important}.floating-panel{background-color:var(--panel-bg);border:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:100;border-radius:12px;align-items:center;gap:8px;padding:8px 12px;transition:background-color .3s,border-color .3s;display:flex;position:fixed}.floating-panel select{text-overflow:ellipsis;max-width:160px}.top-left{top:20px;left:20px}.top-right{top:20px;right:20px}.top-center{top:20px;left:50%;transform:translate(-50%)}.top-subcenter{z-index:99;top:75px;left:50%;transform:translate(-50%)}.bottom-left{opacity:.8;padding:6px 10px;bottom:20px;left:20px}.bottom-left:hover{opacity:1}.instruction-pill{background-color:var(--panel-bg);border:1px solid var(--border);box-shadow:var(--shadow-md);z-index:98;pointer-events:none;border-radius:20px;padding:6px 16px;font-size:13px;font-weight:500;position:fixed;top:135px;left:50%;transform:translate(-50%)}.tool-group{align-items:center;gap:4px;display:flex}.divider{background-color:var(--border);width:1px;height:24px;margin:0 4px}button{color:var(--text-main);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;white-space:nowrap;background-color:#0000;align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:500;transition:all .2s;display:flex}button:hover{background-color:var(--border)}button.active,button.selected{background-color:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb33}button.contained{background-color:var(--primary);color:#fff;border-color:var(--primary)}button.contained:hover{background-color:var(--primary-hover)}button.danger{color:var(--danger);border-color:var(--border)}button.danger:hover{background-color:var(--danger-hover);border-color:var(--danger)}.icon-btn{border:none;border-radius:50%;padding:8px;font-size:1.1rem}.icon-btn:hover{background-color:var(--border)}.dropdown{display:inline-block;position:relative}.dropdown-content{background-color:var(--surface);min-width:180px;box-shadow:var(--shadow-md);z-index:1001;border:1px solid var(--border);border-radius:8px;flex-direction:column;margin-top:0;display:none;position:absolute;top:100%;left:0;overflow:hidden}.dropdown:hover .dropdown-content{display:flex}.dropdown-content a{color:var(--text);align-items:center;gap:10px;padding:12px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:background-color .2s;display:flex}.dropdown-content a:hover{background-color:var(--btn-hover)}.info-badge{background-color:var(--btn-active);color:var(--primary);border-radius:16px;align-items:center;gap:5px;padding:6px 12px;font-size:13px;font-weight:500;display:flex}body.dark-mode .info-badge{background-color:#90caf91a}.canvas-container{z-index:1;background-color:#0000;justify-content:center;align-items:center;width:100vw;height:100vh;margin:0;padding:0;display:flex;position:absolute;top:0;left:0;overflow:hidden}canvas,#isoCanvas{box-shadow:var(--shadow-canvas);cursor:crosshair;border:1px solid #cbd5e1;border-radius:4px;flex-shrink:0;background-color:#fff!important}body.dark-mode canvas,body.dark-mode #isoCanvas{border:none!important}button,input,select,textarea,label{font-family:inherit}input,select,textarea{background-color:var(--app-bg);color:var(--text-main);border:1px solid var(--border);border-radius:var(--radius);outline:none;padding:8px 12px;transition:border-color .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb33}#inlineTextInput{z-index:20;color:#0f172a;border:2px solid var(--primary);box-shadow:var(--shadow-md);resize:both;white-space:pre;background-color:#fff;border-radius:4px;outline:none;min-width:150px;min-height:40px;padding:6px 10px;font-family:Inter,Arial,sans-serif;font-size:16px;font-weight:600;display:none;position:absolute}#isoCanvas{transform-origin:0 0;will-change:transform}.modal-overlay{z-index:40;background:#0003;display:none;position:fixed;inset:0}.modal{background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg);z-index:50;border-radius:16px;min-width:320px;max-height:85vh;padding:30px;display:none;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.modal h2{color:var(--primary);border-bottom:1px solid var(--border);cursor:grab;-webkit-user-select:none;user-select:none;margin-top:0;margin-bottom:20px;padding-bottom:15px;font-size:1.25rem;font-weight:500}.modal h2:active{cursor:grabbing}.color-row{justify-content:space-between;align-items:center;margin-bottom:16px;font-size:15px;font-weight:500;display:flex}.color-row input[type=color]{border:1px solid var(--border);cursor:pointer;background:var(--bg);border-radius:6px;width:40px;height:32px;padding:2px}#miniCanvas{border:1px solid var(--border);cursor:crosshair;background-color:#f8fafc;border-radius:8px;margin:0 auto;display:block}.mini-tools{justify-content:center;gap:5px;margin-bottom:15px;display:flex}.mini-tools button{padding:6px 10px;font-size:13px}#loginOverlay{background-color:var(--bg);z-index:9999;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:fixed;inset:0}.login-box{background-color:var(--surface);box-shadow:var(--shadow-lg);text-align:center;border-radius:16px;width:100%;max-width:320px;padding:40px}.login-box h2{color:var(--primary);margin-top:0;font-weight:500}.login-box input{border:1px solid var(--border);background-color:var(--bg);width:100%;color:var(--text);box-sizing:border-box;border-radius:8px;outline:none;margin:20px 0;padding:12px;font-size:16px}.login-box input:focus{border-color:var(--primary)}@media (width<=1400px){:root{--radius:6px}.floating-panel{transform-origin:top;scale:.9;gap:2px!important;padding:4px 6px!important}.top-center,.top-subcenter,.instruction-pill{transform:translate(-50%)scale(.9)!important}button{gap:3px!important;padding:3px 6px!important;font-size:11px!important}.top-left,.top-right{top:5px!important}.tool-group{gap:2px!important}}@media print{@page{size:A3 landscape;margin:0}.toolbar-container{display:none!important}body,.canvas-container{background-color:#fff!important;margin:0!important;padding:0!important;overflow:hidden!important}canvas{box-shadow:none!important;object-fit:contain!important;border:none!important;width:100%!important;height:100%!important}#inlineTextInput,.modal,.modal-overlay,#loginOverlay,#logout-btn,#hintBar,.floating-panel,.instruction-pill{display:none!important}}#radialMenu{z-index:10000;pointer-events:none;display:none;position:fixed}#radialMenu.active{pointer-events:auto;display:block}.half-moon-item{background:var(--surface);border:2px solid var(--border);cursor:pointer;width:46px;height:46px;box-shadow:var(--shadow-md);transform:translate(-50%, -50%) rotate(var(--angle)) translate(90px) rotate(calc(-1 * var(--angle)));border-radius:50%;justify-content:center;align-items:center;font-size:20px;transition:all .2s;display:flex;position:absolute;top:50%;left:50%}.half-moon-item:hover{color:#fff;transform:translate(-50%, -50%) rotate(var(--angle)) translate(90px) rotate(calc(-1 * var(--angle))) scale(1.15);background:linear-gradient(135deg,#1976d2 0%,#1565c0 100%);border-color:#1976d2;box-shadow:0 0 15px #1976d280}#toast-container{z-index:20000;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:90px;left:20px}.toast{background:var(--panel-bg,#fff);color:var(--text-main,#0f172a);border-left:4px solid var(--primary,#2563eb);pointer-events:auto;border-radius:8px;align-items:center;gap:12px;min-width:240px;max-width:350px;padding:10px 16px;font-family:Inter,sans-serif;font-size:13px;font-weight:500;animation:.4s cubic-bezier(.175,.885,.32,1.275) forwards toast-in-left;display:flex;box-shadow:0 4px 12px #0000001a}.toast.error{border-left-color:var(--danger,#d32f2f)}.toast.success{border-left-color:#10b981}@keyframes toast-in-left{0%{opacity:0;transform:translate(-120%)}to{opacity:1;transform:translate(0)}}@keyframes toast-out-left{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-120%)}}#isomake-app-content{width:100vw;height:100vh;position:relative;overflow:hidden!important}@media (width<=1920px){:root{--radius:6px}.floating-panel{transform-origin:top;transform:scale(.9);gap:4px!important;padding:4px 8px!important}.top-center,.top-subcenter,.instruction-pill{transform:translate(-50%)scale(.9)!important}button{gap:3px!important;padding:4px 6px!important;font-size:11px!important}.top-subcenter{top:60px!important}.instruction-pill{padding:4px 10px!important;top:105px!important}.tool-group span{text-overflow:ellipsis;max-width:80px;overflow:hidden}select,input{height:auto!important;min-height:0!important;padding:2px 4px!important;font-size:11px!important}.floating-panel select{text-overflow:ellipsis;max-width:140px!important}}@media (width<=1100px){.floating-panel{transform:scale(.75)}.top-center,.top-subcenter,.instruction-pill{transform:translate(-50%)scale(.75)!important}}
