:root{color-scheme:light;font-family:"Microsoft YaHei",system-ui,sans-serif;color:#513f45;background:#fffaf9;--rose:#e66b90;--rose-dark:#c94e75;--blush:#fff0f4;--line:#f1dce3;--muted:#987f87;--shadow:0 14px 40px rgba(151,83,104,.1)}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 8% 2%,#ffe7ef 0,transparent 30%),radial-gradient(circle at 95% 35%,#fff0f2 0,transparent 32%),#fffaf9}button,input{font:inherit}
header{width:min(920px,100%);margin:auto;padding:max(18px,env(safe-area-inset-top)) 18px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand img{width:52px;height:52px;object-fit:contain;filter:drop-shadow(0 6px 10px rgba(214,93,132,.16))}h1,h2,p{margin:0}h1{font-size:1.18rem;color:#583d46}.brand p{margin-top:2px;font-size:.7rem;color:var(--muted);white-space:nowrap}#status{flex:none;max-width:46%;padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.76);color:var(--rose-dark);font-size:.72rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
main{width:min(920px,100%);margin:auto;padding:6px 14px 24px;display:grid;gap:14px}.viewer{position:relative;min-height:min(56vh,580px);overflow:hidden;border:1px solid rgba(234,190,204,.75);border-radius:26px;background:linear-gradient(145deg,#3c3135,#161214);box-shadow:var(--shadow)}video,canvas{position:absolute;width:100%;height:100%;object-fit:contain;inset:0}.camera-badge{position:absolute;top:13px;left:13px;padding:7px 10px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:rgba(41,29,33,.5);backdrop-filter:blur(10px);color:white;font-size:.72rem}.camera-badge i{display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%;background:#ff8eab;box-shadow:0 0 0 4px rgba(255,142,171,.18)}#hint{position:absolute;left:13px;right:13px;bottom:13px;padding:11px 13px;border:1px solid rgba(255,255,255,.25);border-radius:14px;background:rgba(45,32,36,.62);backdrop-filter:blur(12px);color:#fff8fa;font-size:.82rem;line-height:1.55}
.actions{display:grid;grid-template-columns:1fr auto;gap:10px}button{min-height:50px;border:0;border-radius:15px;padding:11px 20px;background:linear-gradient(135deg,#f185a4,#df5f87);box-shadow:0 8px 20px rgba(213,81,123,.2);color:white;font-weight:700;cursor:pointer}button.secondary{background:#fff;border:1px solid var(--line);box-shadow:none;color:#8a6c75}button:disabled{opacity:.42;cursor:default}
.panel,.settings{border:1px solid rgba(239,215,222,.9);border-radius:20px;background:rgba(255,255,255,.88);box-shadow:0 8px 28px rgba(151,83,104,.065)}.panel{padding:17px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.panel-heading small{color:var(--rose);font-size:.7rem;font-weight:700;letter-spacing:.12em}h2{margin-top:3px;font-size:1rem;color:#553f46}.mini{min-height:36px;padding:7px 11px;border-radius:11px;box-shadow:none;font-size:.76rem}.mini:disabled{background:#eadde1;color:#aa979d}#nodes{display:grid;gap:9px}.node{min-height:46px;padding:12px 14px;border:1px solid #f3e2e7;border-radius:13px;background:#fffafb;color:#6b4d56;text-decoration:none}
.node-editor{position:fixed;z-index:20;inset:0;padding:20px;display:grid;place-items:center;background:rgba(67,45,52,.3);backdrop-filter:blur(8px)}.node-editor[hidden]{display:none}.editor-card{width:min(430px,100%);padding:20px;border:1px solid var(--line);border-radius:22px;background:#fffafc;box-shadow:0 22px 60px rgba(92,52,64,.22)}.editor-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.close{min-height:34px;width:34px;padding:0;border-radius:50%;background:#fff0f4;box-shadow:none;color:#946e79;font-size:1.35rem}.editor-card label{display:block;margin-top:11px;color:#795d66;font-size:.78rem;font-weight:600}.editor-card input{display:block;width:100%;margin-top:6px;padding:12px 13px;border:1px solid var(--line);border-radius:12px;outline:none;background:white;color:#513f45}.editor-card input:focus{border-color:#e98ba7;box-shadow:0 0 0 3px #fde8ee}.editor-card p{margin:13px 0;color:var(--muted);font-size:.75rem;line-height:1.55}.editor-card p.error{padding:9px 10px;border-radius:10px;background:#fff0f1;color:#bd4564}.editor-card>button{width:100%}.viewer.picking{outline:4px solid rgba(230,107,144,.35);outline-offset:2px}.viewer.picking canvas{cursor:crosshair;touch-action:none}.viewer.picking #hint{background:rgba(201,78,117,.86)}
.settings{padding:0 16px}.settings summary{padding:15px 0;cursor:pointer;color:#856a72;font-size:.86rem;font-weight:600}.settings>p{padding-bottom:12px;color:var(--muted);font-size:.76rem}.import-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding-bottom:16px}.import-grid label{padding:11px;border-radius:12px;background:var(--blush);color:#7c5f68;font-size:.78rem}.import-grid input{display:block;width:100%;margin-top:8px;color:var(--muted);font-size:.7rem}footer{padding:4px 16px max(20px,env(safe-area-inset-bottom));text-align:center;color:#b49ca3;font-size:.7rem;letter-spacing:.05em}
@media(min-width:720px){main{grid-template-columns:minmax(0,1.65fr) minmax(250px,.75fr);align-items:start}.viewer{grid-row:span 3;min-height:68vh}.actions,.panel,.settings{grid-column:2}}
@media(max-width:430px){.brand img{width:45px;height:45px}.brand p{font-size:.65rem}#status{font-size:.66rem}.viewer{min-height:53vh;border-radius:22px}.import-grid{grid-template-columns:1fr}}
