:root{--bg-color: #f8fafc;--panel-bg: rgba(255, 255, 255, .9);--text-color: #0f172a;--text-secondary: #475569;--input-border: rgba(0,0,0,.15);--input-focus: #2563eb;--shadow-color: rgba(0, 0, 0, .12);--section-border: rgba(0,0,0,.08);--burger-color: #0f172a;--canvas-bg: #ffffff;--result-bg: rgba(241, 245, 249, .8);--reset-color: #e74c3c;--pause-color: #3498db;--go-color: #2ecc71;--theme-transition: background-color .4s ease, color .4s ease;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif}[data-theme=dark]{--bg-color: #0f172a;--panel-bg: rgba(30, 41, 59, .85);--text-color: #f1f5f9;--text-secondary: #94a3b8;--input-border: rgba(255,255,255,.1);--input-focus: #38bdf8;--shadow-color: rgba(0, 0, 0, .5);--section-border: rgba(255,255,255,.05);--burger-color: #f1f5f9;--canvas-bg: #0f172a;--result-bg: rgba(15, 23, 42, .6)}*{box-sizing:border-box}body{margin:0;overflow:hidden;font-family:var(--font-family);background-color:var(--bg-color);color:var(--text-color);transition:var(--theme-transition)}#container{position:relative;width:100vw;height:100vh}#simulation-area{width:100%;height:100%;position:relative;background:var(--canvas-bg);transition:var(--theme-transition)}#simCanvas{display:block;width:100%;height:100%;z-index:10;pointer-events:auto}#graph-title{position:absolute;width:100%;text-align:center;margin:0;pointer-events:none;color:var(--text-secondary);font-weight:600;z-index:5;line-height:1.4;top:60px;font-size:1.1em;padding:0 10px;text-shadow:0 2px 4px var(--shadow-color)}@media(min-width:768px){#graph-title{top:20px;font-size:1.4em;padding:0 60px}}#panel{position:absolute;top:0;left:0;height:100vh;width:360px;max-width:85vw;background:var(--panel-bg);box-shadow:4px 0 25px var(--shadow-color);transform:translate(-100%);transition:transform .4s cubic-bezier(.16,1,.3,1),background-color .4s ease;z-index:1000;display:flex;flex-direction:column;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-right:1px solid var(--section-border)}#panel.open{transform:translate(0)}#panelHeader{position:sticky;top:0;z-index:100;padding:15px 20px;background:var(--panel-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--section-border);display:flex;justify-content:flex-end;align-items:center;transition:all .3s cubic-bezier(.4,0,.2,1)}#panel.has-scroll #panelHeader{background:#fff6;box-shadow:0 4px 12px #0000000d;border-bottom-color:#0000000d}[data-theme=dark] #panel.has-scroll #panelHeader{background:#0f172a66;box-shadow:0 4px 12px #0003;border-bottom-color:#ffffff0d}#themeToggleBtn{margin-right:12px}#panelHeader .icon-btn{background:transparent;border:none;color:var(--text-color);cursor:pointer;padding:8px;border-radius:10px;transition:all .2s ease;display:flex;align-items:center;justify-content:center}#panelHeader .icon-btn:hover{background:#0000000d;transform:translateY(-1px)}[data-theme=dark] #panelHeader .icon-btn:hover{background:#ffffff14}#panelHeader .icon-btn svg{stroke-width:1.5px}#panelContent{flex:1;overflow-y:auto;padding:10px 20px 20px;scrollbar-width:thin}#cameraControls{position:absolute;top:20px;right:20px;display:flex;flex-direction:column;gap:12px;z-index:100}.camera-btn{width:46px;height:46px;background:var(--panel-bg);border:1px solid var(--section-border);border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 16px var(--shadow-color);transition:all .2s cubic-bezier(.4,0,.2,1);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text-color)}.camera-btn:hover{transform:scale(1.05);box-shadow:0 8px 20px var(--shadow-color);background:#fff}[data-theme=dark] .camera-btn:hover{background:#1e293b}.camera-btn.active{background:var(--input-focus);color:#fff;border-color:var(--input-focus)}.camera-btn svg{transition:transform .3s ease}.camera-btn:hover svg{transform:scale(1.15)}.camera-btn.disabled{opacity:.4;pointer-events:none}#openBtn{position:absolute;top:20px;left:20px;z-index:100;background:var(--panel-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--section-border);padding:12px;border-radius:12px;box-shadow:0 4px 12px var(--shadow-color);cursor:pointer;display:flex;flex-direction:column;gap:5px;transition:opacity .3s,transform .2s}#openBtn:active{transform:scale(.95)}#openBtn.hidden{opacity:0;pointer-events:none;transform:scale(.9) translate(-20px)}.burger-line{width:24px;height:2px;background-color:var(--burger-color);border-radius:2px}.icon-btn{background:none;border:none;font-size:22px;cursor:pointer;padding:8px 12px;border-radius:8px;transition:background .2s,color .2s;color:var(--text-secondary)}.icon-btn:hover{background-color:var(--section-border);color:var(--text-color)}.section{border-bottom:1px solid var(--section-border)}.section-header{padding:18px 5px;cursor:pointer;font-weight:700;font-size:15px;color:var(--text-color);display:flex;justify-content:space-between;align-items:center;-webkit-user-select:none;user-select:none;transition:color .2s}.section-header:hover{color:var(--input-focus)}.section-header:after{content:"▼";font-size:11px;color:var(--text-secondary);transition:transform .3s cubic-bezier(.16,1,.3,1)}.section.collapsed .section-header:after{transform:rotate(-90deg)}.section.collapsed .section-content{display:none}.section-content{padding:0 5px 20px;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.control-group{margin-bottom:20px}label{font-size:13px;font-weight:500;display:flex;justify-content:space-between;margin-bottom:8px;color:var(--text-secondary)}input[type=number]{width:70px;padding:6px 8px;border:1px solid var(--input-border);border-radius:6px;text-align:right;font-size:13px;background-color:transparent;color:var(--text-color);transition:border-color .2s,box-shadow .2s}input[type=number]:focus{outline:none;border-color:var(--input-focus);box-shadow:0 0 0 3px #3498db33}input[type=range]{width:100%;margin-top:5px;cursor:pointer;accent-color:var(--input-focus)}.action-row{display:flex;gap:12px;margin-top:15px}.btn{flex:1;padding:12px;border:none;border-radius:8px;color:#fff;font-weight:600;font-size:14px;cursor:pointer;text-align:center;box-shadow:0 4px 10px #00000026;transition:transform .2s,opacity .2s,box-shadow .2s}.btn:hover{transform:translateY(-2px);box-shadow:0 6px 15px #0003;opacity:.95}.btn:active{transform:translateY(0)}.btn-go{background:linear-gradient(135deg,var(--go-color),#27ae60)}.btn-reset{background:linear-gradient(135deg,var(--reset-color),#c0392b)}.btn-pause{background:linear-gradient(135deg,var(--pause-color),#2980b9)}.checkbox-group{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:13px;color:var(--text-color)}.checkbox-group label{margin:0;color:var(--text-color);cursor:pointer}input[type=checkbox],input[type=radio]{accent-color:var(--input-focus);cursor:pointer}.result-box{background:var(--result-bg);padding:15px;border-radius:8px;border:1px solid var(--section-border);font-size:13px;line-height:1.6;color:var(--text-color);box-shadow:inset 0 2px 5px var(--shadow-color)}.result-box ul{padding-left:20px;margin:10px 0 0}.result-box li{margin-bottom:5px}.hidden{display:none!important}.disabled-by-shape{opacity:.4;pointer-events:none}
