#app{width:100vw;height:100vh;overflow:hidden}*{margin:0;padding:0;box-sizing:border-box}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffde;background-color:#1e1e1e;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{width:100%;height:100%;overflow:hidden}.auth-page{display:flex;align-items:center;justify-content:center;height:100vh;background:#1e1e1e}.auth-card{background:#262626;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:40px;width:360px;box-shadow:0 8px 40px #00000080}.auth-card h1{margin-bottom:24px;font-size:24px;text-align:center}.auth-card form{display:flex;flex-direction:column;gap:12px}.auth-card input{padding:10px 14px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0f;color:#fff;font-size:14px;outline:none}.auth-card input:focus{border-color:#7c8aff80}.auth-card button[type=submit]{padding:10px;border:none;border-radius:6px;background:#7c8aff;color:#fff;font-size:14px;font-weight:600;cursor:pointer;margin-top:4px}.auth-card button:disabled{opacity:.5}.auth-link{text-align:center;margin-top:16px;font-size:13px;color:#ffffff80}.auth-link a{color:#7c8aff;text-decoration:none}.error{color:#fb464c;font-size:13px;text-align:center}.dashboard{height:100vh;overflow-y:auto;padding:32px 40px}.dash-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.dash-header h1{font-size:24px}.dash-actions{display:flex;gap:8px}.btn-primary{padding:8px 16px;border:none;border-radius:6px;background:#7c8aff;color:#fff;font-size:13px;font-weight:600;cursor:pointer}.btn-ghost{padding:8px 16px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:transparent;color:#ffffffb3;font-size:13px;cursor:pointer}.btn-ghost:hover{background:#ffffff0f}.btn-sm{padding:4px 10px;font-size:12px}.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.canvas-card{position:relative;background:#262626;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:20px;cursor:pointer;transition:border-color .15s}.canvas-card:hover{border-color:#7c8aff66}.card-title{font-size:16px;font-weight:600;margin-bottom:8px;cursor:text}.card-title-input{font-size:16px;font-weight:600;margin-bottom:8px;background:#ffffff0f;border:1px solid rgba(124,138,255,.5);border-radius:4px;color:#fff;padding:2px 6px;outline:none;width:100%}.card-meta{display:flex;gap:8px;align-items:center;font-size:12px;color:#fff6}.badge{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}.badge-owner{background:#7c8aff26;color:#7c8aff}.badge-shared{background:#44cf6e26;color:#44cf6e}.card-delete{position:absolute;top:8px;right:8px;width:24px;height:24px;border:none;background:transparent;color:#ffffff4d;cursor:pointer;font-size:14px;border-radius:4px}.card-delete:hover{color:#fb464c;background:#fb464c26}.dash-section{margin-top:32px}.dash-section h2{font-size:18px;margin-bottom:16px;color:#fff9}.canvas-card-welcome{border-color:#53dfdd4d}.canvas-card-welcome:hover{border-color:#53dfdd99}.badge-public{background:#53dfdd26;color:#53dfdd}.admin-stats{display:flex;gap:16px;margin-bottom:24px}.stat-card{background:#262626;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:20px 32px;text-align:center}.stat-value{font-size:32px;font-weight:700;color:#7c8aff}.stat-label{font-size:13px;color:#fff6;margin-top:4px}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th{text-align:left;padding:10px 16px;border-bottom:1px solid rgba(255,255,255,.1);color:#ffffff80;font-weight:500;font-size:12px}.admin-table td{padding:10px 16px;border-bottom:1px solid rgba(255,255,255,.05)}.admin-table tr:hover td{background:#ffffff05}.role-select{padding:4px 8px;border:1px solid rgba(255,255,255,.12);border-radius:4px;background:#333;color:#fff;font-size:12px;cursor:pointer;outline:none}.badge-superadmin{background:#fb464c26;color:#fb464c}.dash-loading,.dash-empty{text-align:center;color:#fff6;padding:60px}.canvas-view{height:100vh;display:flex;flex-direction:column;position:relative}.canvas-loading,.canvas-error{display:flex;align-items:center;justify-content:center;height:100vh;color:#ffffff80}.canvas-topbar{position:absolute;top:0;left:0;right:0;height:44px;background:#1e1e1ee6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;padding:0 12px;gap:8px;z-index:100}.topbar-back{color:#ffffff80;text-decoration:none;display:flex;align-items:center;padding:4px}.topbar-back:hover{color:#fff}.topbar-title{background:transparent;border:none;color:#fff;font-size:14px;font-weight:600;outline:none;padding:4px 8px;border-radius:4px;min-width:120px}.topbar-title:focus{background:#ffffff0f}.topbar-title-ro{font-size:14px;font-weight:600;color:#fff}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:8px}.topbar-status{font-size:11px;color:#ffffff4d}.topbar-ws-status{display:flex;align-items:center}.online-users{display:flex;align-items:center;gap:-4px}.online-avatar{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff;border:2px solid rgba(30,30,30,.9);margin-left:-4px;cursor:default}.online-avatar:first-child{margin-left:0}.topbar-role{font-size:11px;padding:2px 8px;background:#7c8aff26;color:#7c8aff;border-radius:4px}.node-toolbar{position:absolute;top:44px;left:0;right:0;height:36px;background:#1e1e1ef2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;padding:0 12px;gap:3px;z-index:100;overflow-x:auto}.tb-label{font-size:10px;color:#ffffff59;text-transform:uppercase;letter-spacing:.5px;margin-right:4px;white-space:nowrap}.tb-sep{width:1px;height:20px;background:#ffffff1a;margin:0 6px;flex-shrink:0}.tb-color{width:18px;height:18px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;flex-shrink:0;transition:transform .1s}.tb-color:hover{transform:scale(1.2)}.tb-color-none{background:#444;font-size:9px;color:#aaa;display:flex;align-items:center;justify-content:center}.tb-btn{height:26px;min-width:26px;border:none;background:transparent;color:#ffffff80;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;padding:0 2px;flex-shrink:0}.tb-btn:hover{background:#ffffff14;color:#fff}.tb-btn.active{background:#7c8aff33;color:#7c8aff}.share-panel{position:absolute;top:44px;right:0;width:320px;background:#1e1e1ef7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:0 0 8px 8px;padding:16px;z-index:100}.share-panel h3{font-size:14px;margin-bottom:12px}.share-form{display:flex;gap:6px;margin-bottom:12px}.share-form input{flex:1;padding:6px 10px;border:1px solid rgba(255,255,255,.12);border-radius:4px;background:#ffffff0f;color:#fff;font-size:12px;outline:none}.share-form select{padding:6px;border:1px solid rgba(255,255,255,.12);border-radius:4px;background:#333;color:#fff;font-size:12px}.share-form button{padding:6px 12px;border:none;border-radius:4px;background:#7c8aff;color:#fff;font-size:12px;cursor:pointer}.share-list{display:flex;flex-direction:column;gap:6px}.share-item{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#fff9;padding:4px 0}.share-item button{border:none;background:transparent;color:#ffffff4d;cursor:pointer;font-size:14px}.share-item button:hover{color:#fb464c}
