:root{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--bg-tertiary: #e8e8e8;--bg-elevated: #fafafa;--text-primary: #000000;--text-secondary: #333333;--text-muted: #666666;--accent-primary: #f7941d;--accent-secondary: #e8850f;--accent-success: #4caf50;--accent-danger: #f44336;--accent-warning: #ff9800;--border-color: rgba(0, 0, 0, .12);--shadow-color: rgba(0, 0, 0, .1);--grid-line: rgba(0, 0, 0, .3);--grid-accent: rgba(0, 0, 0, .5);--cube-face: #808080;--cube-edge: #606060;--cube-hover: rgba(247, 148, 29, .3);--header-height: 64px;--log-height: 180px;--font-primary: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", Consolas, monospace;--transition-fast: .15s ease;--transition-normal: .25s ease}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden}body{font-family:var(--font-primary);background:var(--bg-primary);color:var(--text-primary);line-height:1.5}#app{display:flex;flex-direction:column;height:100vh}.header-bar{height:var(--header-height);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;padding:0 16px;flex-shrink:0;gap:16px;position:relative}.logo{position:absolute;left:16px;font-size:1.4rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.header-tools{display:flex;align-items:center;gap:4px}.tool-btn{display:flex;align-items:center;justify-content:center;padding:6px;border:none;background:transparent;cursor:pointer;border-radius:8px;transition:var(--transition-fast)}.tool-btn img{width:44px;height:44px;object-fit:contain}.tool-btn:hover{background:var(--bg-tertiary)}.tool-btn.active{background:var(--bg-tertiary);box-shadow:inset 0 0 0 2px var(--accent-primary)}.tool-btn.danger:hover{background:#f443361a}.header-actions{display:flex;gap:4px;flex-shrink:0}.icon-btn{width:44px;height:44px;border:none;background:transparent;cursor:pointer;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:var(--transition-fast)}.icon-btn:hover{background:var(--bg-tertiary)}.icon-btn img{width:36px;height:36px;object-fit:contain}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;min-height:0}#canvas-container{flex:1;min-height:200px;position:relative;background:var(--bg-primary);overflow:hidden}#webgl-canvas{width:100%;height:100%;display:block}.temp-message{position:absolute;top:16px;left:16px;background:var(--accent-primary);color:#fff;padding:10px 20px;border-radius:8px;font-weight:500;font-size:.9rem;box-shadow:0 4px 20px var(--shadow-color);animation:slideIn .3s ease;z-index:10}.temp-message.hidden{display:none}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.project-log{height:25vh;min-height:180px;max-height:300px;background:var(--bg-secondary);border-top:1px solid var(--border-color);display:flex;flex-direction:column;flex-shrink:0}.project-log h2{padding:6px 16px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0}.log-entries{flex:1;overflow-y:auto;padding:6px 12px;font-family:var(--font-mono);font-size:.75rem;display:flex;flex-direction:column;gap:2px}.log-entry{padding:2px 8px;color:var(--text-secondary);border-radius:4px;background:var(--bg-tertiary);white-space:nowrap;width:fit-content}.log-entry.place{color:var(--accent-success)}.log-entry.erase{color:var(--accent-danger)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:1000}.modal.hidden{display:none}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{position:relative;background:var(--bg-primary);border-radius:16px;padding:32px;max-width:500px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px var(--shadow-color);border:1px solid var(--border-color)}.modal-content.modal-small{max-width:400px}.modal-content h2{font-size:1.5rem;margin-bottom:20px;color:var(--text-primary)}.modal-content p{color:var(--text-secondary);margin-bottom:16px;line-height:1.6}.settings-section{background:var(--bg-secondary);padding:20px;border-radius:12px;margin-bottom:16px}.settings-section h3{font-size:.9rem;font-weight:600;color:var(--text-primary);margin-bottom:12px}.links-list{list-style:none}.links-list li{margin-bottom:8px}.links-list a{color:var(--accent-primary);text-decoration:none;font-size:.9rem;transition:var(--transition-fast)}.links-list a:hover{text-decoration:underline}.checkbox-label{display:flex;align-items:flex-start;gap:12px;cursor:pointer;font-size:.9rem;color:var(--text-secondary)}.checkbox-label input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent-primary);cursor:pointer;flex-shrink:0;margin-top:2px}.text-input{width:100%;padding:12px 16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-family:var(--font-mono);font-size:.9rem;margin-bottom:20px;transition:var(--transition-fast)}.text-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #f7941d33}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}.btn-primary,.btn-secondary,.btn-danger{padding:12px 24px;border:none;border-radius:8px;font-family:var(--font-primary);font-size:.9rem;font-weight:600;cursor:pointer;transition:var(--transition-fast)}.btn-primary{background:var(--accent-primary);color:#fff}.btn-primary:hover{background:var(--accent-secondary)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-secondary)}.btn-danger{background:var(--accent-danger);color:#fff}.btn-danger:hover{filter:brightness(1.1)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ccc}@media (max-width: 768px){.header-bar{padding:0 8px;gap:8px}.logo{font-size:1.1rem}.tool-btn img{width:36px;height:36px}.project-log{height:20vh;min-height:150px}}@media (max-width: 480px){.header-tools{gap:2px}.tool-btn{padding:4px}.tool-btn img{width:28px;height:28px}.project-log{height:18vh;min-height:120px}}
