:root{--bg: #f5f7fa;--panel: #ffffff;--border: #e0e4ea;--accent: #1976d2;--accent-dark: #1259a5;--danger: #d32f2f;--text: #263238;--text-dim: #607d8b;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}.app{display:grid;grid-template-rows:54px 1fr;grid-template-columns:232px 1fr 460px;grid-template-areas:"toolbar toolbar toolbar" "sidebar canvas  editor";height:100vh;width:100vw}.toolbar{grid-area:toolbar;display:flex;align-items:center;gap:14px;padding:0 18px;background:var(--panel);border-bottom:1px solid var(--border);box-shadow:0 1px 4px #102a430f;z-index:20}.toolbar h1{font-size:15px;margin:0;font-weight:650;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}.toolbar .logo{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:7px;background:linear-gradient(135deg,#1976d2,#00a3a3);font-size:15px}.toolbar .spacer{flex:1}.examples-select{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 10px;font-size:12.5px;cursor:pointer}button{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:7px 14px;font-size:13px;font-weight:550;cursor:pointer;transition:background .15s,box-shadow .15s}button:hover:not(:disabled){background:var(--accent-dark)}button:disabled{opacity:.45;cursor:default}button.ghost{background:transparent;border:1px solid var(--border);color:var(--text)}button.ghost:hover:not(:disabled){background:#eef3f9;border-color:var(--accent)}button.danger{background:transparent;border:1px solid #f1c1c1;color:var(--danger)}button.danger:hover:not(:disabled){background:#fdeaea}.status{font-size:12.5px;color:var(--text-dim)}.sidebar{grid-area:sidebar;background:var(--panel);border-right:1px solid var(--border);overflow-y:auto;padding:12px}.sidebar-search{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:7px;font-size:12.5px;margin-bottom:10px;background:var(--bg);color:var(--text)}.sidebar-search:focus{outline:2px solid #bbdefb;border-color:var(--accent)}.sidebar-heading{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin:14px 2px 8px;display:flex;align-items:center;gap:6px}.sidebar-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sidebar-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px 8px;background:var(--panel);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:11px;font-weight:500;cursor:grab;transition:border-color .15s,box-shadow .15s,transform .1s}.sidebar-item:hover{background:var(--panel);border-color:var(--accent);box-shadow:0 2px 8px #1976d226;transform:translateY(-1px)}.sidebar-item img{height:38px;max-width:86px;object-fit:contain;pointer-events:none}.sidebar-item span{text-align:center;line-height:1.2;color:var(--text-dim)}.canvas-area{grid-area:canvas;position:relative;overflow:hidden;background-color:#fafbfd;background-image:radial-gradient(#d7dde6 1px,transparent 1px);background-size:20px 20px}.canvas-hint{position:absolute;bottom:10px;left:50%;transform:translate(-50%);font-size:11.5px;color:var(--text-dim);background:#ffffffe6;border:1px solid var(--border);border-radius:20px;padding:5px 14px;pointer-events:none;white-space:nowrap}.canvas-controls{position:absolute;left:12px;bottom:12px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;z-index:10}.zoom-group{display:flex;background:var(--panel);border:1px solid var(--border);border-radius:7px;overflow:hidden;box-shadow:0 1px 4px #102a4314}.ctl{background:var(--panel);color:var(--text);border:none;font-size:13px;font-weight:600;padding:6px 10px;cursor:pointer}.ctl:hover{background:#eef3f9}.zoom-group .ctl{border-radius:0}.zoom-group .zoom-label{min-width:52px;border-left:1px solid var(--border);border-right:1px solid var(--border);font-variant-numeric:tabular-nums}.ctl.wide{border:1px solid var(--border);border-radius:7px;font-size:12px;font-weight:500;box-shadow:0 1px 4px #102a4314}.ctl.wide.on{background:var(--accent);color:#fff;border-color:var(--accent)}.editor-bar{display:flex;align-items:center;justify-content:space-between;padding:0 8px 0 12px;height:32px;font-size:12px;font-weight:600;color:var(--text-dim);background:var(--bg);border-bottom:1px solid var(--border)}.editor-bar button{padding:3px 9px;font-size:11.5px}.editor-expand{position:absolute;top:50%;transform:translateY(-50%);right:0;z-index:9;background:var(--panel);border:1px solid var(--border);border-right:none;color:var(--accent);font-size:12px;font-weight:600;cursor:pointer;writing-mode:vertical-rl;text-orientation:mixed;padding:10px 4px;border-radius:8px 0 0 8px;box-shadow:-2px 2px 8px #102a431a}.editor-expand:hover{background:#eef3f9}.props-panel{position:absolute;top:14px;right:14px;width:224px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 4px 18px #102a431f;padding:12px 14px;z-index:10}.props-panel header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:13.5px}.props-rotation{font-size:11px;color:var(--text-dim);background:var(--bg);border-radius:4px;padding:2px 6px}.props-row{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}.props-row label{font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.swatches{display:flex;gap:6px}.swatch{width:22px;height:22px;padding:0;border-radius:50%;border:2px solid transparent;box-shadow:inset 0 0 0 1px #00000026}.swatch.active{border-color:var(--text)}.value-input{display:flex;align-items:center;gap:6px}.value-input input{width:110px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;font-size:13px;color:var(--text);background:var(--panel)}.value-input input:focus{outline:2px solid #bbdefb;border-color:var(--accent)}.value-input span{font-size:12px;color:var(--text-dim)}.props-actions{display:flex;flex-direction:column;gap:6px;margin-top:4px}.props-actions button{width:100%;text-align:center;padding:6px 10px;font-size:12.5px}.pin-label-list{display:flex;flex-direction:column;gap:4px;max-height:148px;overflow-y:auto;padding-right:2px}.pin-label-row{display:grid;grid-template-columns:42px 1fr 10px;align-items:center;gap:6px}.pin-label-row .pin-name{font-size:11px;font-family:ui-monospace,Menlo,monospace;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pin-label-row input{border:1px solid var(--border);border-radius:5px;padding:3px 6px;font-size:11.5px;font-family:ui-monospace,Menlo,monospace;text-transform:uppercase;color:var(--text);background:var(--panel);min-width:0}.pin-label-row input:focus{outline:2px solid #bbdefb;border-color:var(--accent)}.pin-label-dot{width:8px;height:8px;border-radius:50%}.editor-area{grid-area:editor;display:grid;grid-template-rows:32px 1fr 220px;border-left:1px solid var(--border);background:var(--panel);min-width:0}.serial{background:#fcfdfe;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;padding:8px 10px;overflow-y:auto;white-space:pre-wrap;color:#1565c0}.serial-bar{display:flex;align-items:center;justify-content:space-between;padding:0 10px;font-size:12px;font-weight:600;color:var(--text-dim);background:var(--bg);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.serial-input{display:flex;gap:6px;padding:4px 8px;background:var(--bg);border-top:1px solid var(--border)}.serial-input input{flex:1;background:var(--panel);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:ui-monospace,Menlo,monospace;font-size:12px;padding:4px 9px}.serial-input input:focus{outline:2px solid #bbdefb;border-color:var(--accent)}.serial-input button{padding:3px 12px}.auth-container{display:flex;align-items:center;justify-content:center;min-height:100vh;width:100vw;position:relative;background:radial-gradient(circle at 15% 15%,rgba(25,118,210,.15) 0%,transparent 40%),radial-gradient(circle at 85% 85%,rgba(0,163,163,.15) 0%,transparent 45%),#0d1117;overflow:hidden;padding:20px}.auth-background-grid{position:absolute;top:0;left:0;right:0;bottom:0;opacity:.8;z-index:1}.auth-card{background:#161b22bf;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.08);box-shadow:0 12px 40px #00000073,inset 0 1px #ffffff0d;border-radius:16px;padding:40px 32px;width:100%;max-width:420px;z-index:2;box-sizing:border-box;color:#f0f6fc;animation:authFadeIn .4s cubic-bezier(.16,1,.3,1)}@keyframes authFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.auth-header{text-align:center;margin-bottom:28px}.auth-logo{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,#1976d2,#00a3a3);font-size:24px;margin-bottom:16px;box-shadow:0 4px 16px #1976d24d}.auth-header h2{font-size:22px;font-weight:650;margin:0 0 8px;letter-spacing:-.02em}.auth-subtitle{font-size:13px;color:#8b949e;line-height:1.5;margin:0}.auth-form{display:flex;flex-direction:column;gap:20px}.auth-error-banner{background:#f851491a;border:1px solid rgba(248,81,73,.2);border-radius:8px;padding:10px 14px;color:#ff7b72;font-size:12.5px;display:flex;align-items:flex-start;gap:10px;line-height:1.4}.auth-error-banner .error-icon{flex-shrink:0;margin-top:1px}.auth-input-group{display:flex;flex-direction:column;gap:8px}.auth-input-group label{font-size:12px;font-weight:600;color:#c9d1d9}.auth-input-wrapper{position:relative;display:flex;align-items:center}.auth-input-wrapper .input-icon{position:absolute;left:12px;color:#8b949e;pointer-events:none}.auth-input-wrapper input{width:100%;background:#0d111799;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:10px 12px 10px 38px;font-size:13.5px;color:#f0f6fc;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.auth-input-wrapper input:focus{outline:none;border-color:#58a6ff;box-shadow:0 0 0 3px #58a6ff26}.auth-submit-btn{background:linear-gradient(135deg,#1976d2,#115293);color:#fff;border:none;border-radius:8px;padding:11px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;height:42px;transition:opacity .2s,transform .1s,box-shadow .2s;box-shadow:0 4px 12px #1976d233;margin-top:8px}.auth-submit-btn:hover:not(:disabled){opacity:.95;box-shadow:0 4px 16px #1976d259}.auth-submit-btn:active:not(:disabled){transform:scale(.99)}.auth-submit-btn:disabled{opacity:.6;cursor:not-allowed}.auth-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:authSpin .8s linear infinite}@keyframes authSpin{to{transform:rotate(360deg)}}.auth-footer{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:24px;font-size:12.5px;color:#8b949e;border-top:1px solid rgba(255,255,255,.06);padding-top:16px}.auth-toggle-btn{background:transparent!important;color:#58a6ff!important;border:none!important;padding:0!important;font-size:12.5px!important;font-weight:600!important;cursor:pointer!important;transition:color .2s!important;box-shadow:none!important;border-radius:0!important}.auth-toggle-btn:hover{color:#79c0ff!important;text-decoration:underline}.user-profile{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--text-dim);border-left:1px solid var(--border);padding-left:14px}.user-email{font-weight:500;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}button.logout-btn{background:transparent;border:1px solid var(--border);color:var(--text);padding:5px 10px;font-size:12px;font-weight:500}button.logout-btn:hover{background:#fdeaea;border-color:#f1c1c1;color:var(--danger)}.dashboard-container{min-height:100vh;width:100vw;background:#f4f6f9;color:#1a202c;position:relative;overflow-y:auto;box-sizing:border-box}.dashboard-header{display:flex;align-items:center;justify-content:space-between;padding:16px 40px;background:#fff;border-bottom:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000d;position:sticky;top:0;z-index:10}.dashboard-logo-section{display:flex;align-items:center;gap:12px}.dashboard-logo{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:9px;background:linear-gradient(135deg,#1976d2,#00a3a3);font-size:18px;color:#fff;box-shadow:0 2px 8px #1976d233}.dashboard-logo-section h1{font-size:18px;font-weight:650;margin:0;color:#2d3748}.dashboard-header-actions{display:flex;align-items:center;gap:20px}.dashboard-search-wrapper{position:relative;display:flex;align-items:center}.dashboard-search-wrapper .search-icon{position:absolute;left:12px;color:#a0aec0;pointer-events:none}.dashboard-search-wrapper input{padding:8px 12px 8px 36px;border:1px solid #cbd5e0;border-radius:8px;font-size:13.5px;width:240px;background:#f7fafc;transition:border-color .2s,box-shadow .2s,background-color .2s}.dashboard-search-wrapper input:focus{outline:none;background-color:#fff;border-color:#3182ce;box-shadow:0 0 0 3px #3182ce26}.dashboard-create-btn{background:linear-gradient(135deg,#1976d2,#115293);color:#fff;border:none;border-radius:8px;padding:9px 18px;font-size:13.5px;font-weight:600;cursor:pointer;box-shadow:0 3px 10px #1976d233;transition:transform .1s,opacity .2s,box-shadow .2s;display:flex;align-items:center;gap:6px}.dashboard-create-btn:hover{opacity:.95;box-shadow:0 4px 14px #1976d24d}.dashboard-create-btn:active{transform:scale(.98)}.dashboard-user-profile{display:flex;align-items:center;gap:12px;border-left:1px solid #e2e8f0;padding-left:20px}.dashboard-user-email{font-size:13px;font-weight:500;color:#4a5568;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-logout-btn{background:transparent;border:1px solid #cbd5e0;color:#4a5568;border-radius:6px;padding:5px 10px;font-size:12px;font-weight:550;cursor:pointer;transition:all .2s}.dashboard-logout-btn:hover{background:#fff5f5;border-color:#feb2b2;color:#c53030}.dashboard-content{max-width:1200px;margin:0 auto;padding:40px;z-index:2;position:relative;box-sizing:border-box}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:24px}.project-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:24px;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008;cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;flex-direction:column;justify-content:space-between;min-height:180px}.project-card:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px #00000014,0 4px 6px -2px #0000000a;border-color:#cbd5e0}.project-card-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.project-card-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:6px;background:#1976d214;color:#1976d2;font-size:14px;font-weight:700}.project-card-title{font-size:15px;font-weight:650;margin:0;color:#2d3748;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-grow:1}.project-card-body{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}.project-card-board{font-size:12.5px;font-weight:600;color:#4a5568}.project-card-date{font-size:11.5px;color:#718096}.project-card-footer{display:flex;gap:8px}.project-card-btn{flex:1;padding:6px 0;font-size:12px;font-weight:600;border-radius:6px;border:none;cursor:pointer;text-align:center;transition:background .15s,color .15s}.project-card-btn.open{background:#3182ce;color:#fff}.project-card-btn.open:hover{background:#2b6cb0}.project-card-btn.rename{background:#edf2f7;color:#4a5568;border:1px solid #e2e8f0}.project-card-btn.rename:hover{background:#e2e8f0}.project-card-btn.delete{background:transparent;color:#e53e3e;border:1px solid #fed7d7}.project-card-btn.delete:hover{background:#fff5f5;border-color:#feb2b2}.dashboard-status-message{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 0;text-align:center;color:#718096}.dashboard-status-message.error{color:#e53e3e}.dashboard-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:100px 40px;text-align:center;background:#fff;border:1px dashed #cbd5e0;border-radius:16px;max-width:600px;margin:0 auto}.empty-state-illustration{font-size:48px;margin-bottom:20px}.dashboard-empty-state h3{font-size:18px;font-weight:650;margin:0 0 10px;color:#2d3748}.dashboard-empty-state p{font-size:13.5px;color:#718096;margin:0 0 24px;max-width:320px;line-height:1.5}.dashboard-spinner{width:32px;height:32px;border:3px solid rgba(25,118,210,.15);border-top-color:#1976d2;border-radius:50%;animation:authSpin .8s linear infinite;margin-bottom:16px}.dashboard-spinner.small{width:16px;height:16px;border-width:2px;margin-bottom:0}.dashboard-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0d111780;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.dashboard-dialog-card{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;width:100%;max-width:400px;padding:30px;box-sizing:border-box;animation:dialogFadeIn .25s cubic-bezier(.16,1,.3,1)}@keyframes dialogFadeIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.dashboard-dialog-card h3{margin:0 0 16px;font-size:17px;font-weight:650;color:#2d3748}.dashboard-dialog-card p{margin:0 0 24px;font-size:13.5px;color:#4a5568;line-height:1.5}.dialog-error{color:#e53e3e;font-size:12px;margin-bottom:12px;background:#fff5f5;border:1px solid #fed7d7;padding:8px 12px;border-radius:6px}.dialog-input{width:100%;padding:10px 12px;border:1px solid #cbd5e0;border-radius:8px;font-size:14px;margin-bottom:24px;box-sizing:border-box;background:#f8fafc}.dialog-input:focus{outline:none;border-color:#3182ce;background-color:#fff;box-shadow:0 0 0 3px #3182ce26}.dialog-actions{display:flex;justify-content:flex-end;gap:12px}.dialog-actions button{padding:8px 16px;font-size:13px;border-radius:8px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center}.dialog-actions button.ghost{background:#edf2f7;color:#4a5568;border:1px solid #e2e8f0}.dialog-actions button.ghost:hover{background:#e2e8f0}.dialog-actions button.primary{background:#3182ce;color:#fff}.dialog-actions button.primary:hover{background:#2b6cb0}.dialog-actions button.danger-btn{background:#e53e3e;color:#fff;border:none}.dialog-actions button.danger-btn:hover{background:#c53030}button.back-btn{background:transparent;color:var(--text-dim);border:1px solid var(--border);padding:6px 12px;font-size:12.5px;font-weight:600;display:inline-flex;align-items:center;gap:6px;border-radius:6px;cursor:pointer;transition:all .15s}button.back-btn:hover{background:#eef3f9;color:var(--accent);border-color:var(--accent)}.project-name-wrapper{display:flex;align-items:center;gap:8px}.project-name-input{border:1px solid transparent;background:transparent;font-size:13.5px;font-weight:600;color:var(--text);padding:4px 8px;border-radius:6px;width:140px;transition:all .15s}.project-name-input:hover{background:#edf2f7;border-color:var(--border)}.project-name-input:focus{outline:none;background:#fff;border-color:var(--accent);box-shadow:0 0 0 3px #1976d21f}button.save-btn{background:#43a047;color:#fff;border-radius:6px;padding:6px 12px;font-size:12.5px;font-weight:600;transition:background .15s,box-shadow .15s;box-shadow:0 1px 3px #00000014}button.save-btn:hover:not(:disabled){background:#2e7d32}button.save-btn:disabled{background:#a5d6a7;opacity:.7}button.save-btn.dirty-glow{animation:saveGlow 1.5s infinite alternate}@keyframes saveGlow{0%{box-shadow:0 0 2px #43a0474d}to{box-shadow:0 0 10px #43a047b3}}.toast{position:fixed;bottom:24px;right:24px;display:flex;align-items:center;gap:10px;padding:12px 20px;border-radius:8px;color:#fff;font-size:13.5px;font-weight:550;box-shadow:0 4px 12px #00000026;z-index:1000;animation:toastSlideIn .3s cubic-bezier(.16,1,.3,1)}@keyframes toastSlideIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.toast-success{background:#2e7d32;border:1px solid #1b5e20}.toast-error{background:#d32f2f;border:1px solid #c62828}.toast-icon{font-weight:700;font-size:16px}.dashboard-layout{display:flex;height:100vh;width:100vw;background:#f4f6f9;color:#1a202c;overflow:hidden;box-sizing:border-box}.dashboard-sidebar{width:260px;background:#1a202c;color:#a0aec0;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid #2d3748;flex-shrink:0;z-index:10;box-sizing:border-box}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:24px;border-bottom:1px solid #2d3748}.brand-logo{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,#1976d2,#00a3a3);font-size:16px;color:#fff;box-shadow:0 2px 6px #1976d233}.brand-name{font-size:17px;font-weight:700;color:#fff;letter-spacing:-.01em}.sidebar-nav{display:flex;flex-direction:column;gap:4px;padding:24px 16px;flex-grow:1}.sidebar-nav .nav-item{display:flex;align-items:center;gap:12px;padding:10px 16px;border:none;background:transparent;color:#a0aec0;font-size:13.5px;font-weight:550;border-radius:8px;cursor:pointer;text-align:left;transition:all .2s}.sidebar-nav .nav-item:hover{background:#ffffff0d;color:#fff}.sidebar-nav .nav-item.active{background:linear-gradient(135deg,#1976d2,#115293);color:#fff;box-shadow:0 4px 12px #1976d226}.nav-icon{flex-shrink:0;opacity:.8}.nav-item.active .nav-icon{opacity:1}.sidebar-footer{padding:20px 16px;border-top:1px solid #2d3748;display:flex;flex-direction:column;gap:12px}.sidebar-footer .user-info{display:flex;flex-direction:column;padding:0 8px}.user-email-label{font-size:12px;font-weight:500;color:#718096;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-logout-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:9px 0;border:1px solid #4a5568;background:transparent;color:#a0aec0;border-radius:6px;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .2s}.sidebar-logout-btn:hover{background:#c53030;border-color:#c53030;color:#fff;box-shadow:0 4px 12px #c5303033}.logout-icon{flex-shrink:0}.dashboard-content-pane{flex-grow:1;display:flex;flex-direction:column;height:100vh;overflow:hidden;box-sizing:border-box}.dashboard-pane-header{display:flex;align-items:center;justify-content:space-between;padding:16px 40px;background:#fff;border-bottom:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000d;flex-shrink:0;box-sizing:border-box;height:68px}.pane-title-section h2{font-size:18px;font-weight:650;margin:0;color:#2d3748}.pane-header-actions{display:flex;align-items:center;gap:20px}.dashboard-pane-body{flex-grow:1;padding:40px;overflow-y:auto;box-sizing:border-box}.dashboard-panel-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:36px;box-shadow:0 4px 6px -1px #0000000d;max-width:800px;margin:0 auto;box-sizing:border-box}.panel-divider{border:0;height:1px;background:#e2e8f0;margin:28px 0}.dashboard-panel-card h3{margin:0 0 20px;font-size:16px;font-weight:650;color:#2d3748}.profile-details-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px}.detail-item{display:flex;flex-direction:column;gap:6px}.detail-label{font-size:11px;font-weight:600;color:#718096;text-transform:uppercase;letter-spacing:.04em}.detail-value{font-size:13.5px;color:#2d3748;font-weight:550}.detail-value.text-mono{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:#4a5568}.profile-password-form{display:flex;flex-direction:column;gap:16px;max-width:320px}.profile-password-form .form-group{display:flex;flex-direction:column;gap:6px}.profile-password-form .form-group label{font-size:12px;font-weight:600;color:#4a5568}.profile-password-form .form-group input{padding:8px 12px;border:1px solid #cbd5e0;border-radius:6px;font-size:13px;background:#f7fafc}.profile-password-form .form-group input:focus{outline:none;background-color:#fff;border-color:#3182ce;box-shadow:0 0 0 3px #3182ce26}.save-password-btn{background:linear-gradient(135deg,#1976d2,#115293);color:#fff;border:none;border-radius:6px;padding:10px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 2px 6px #1976d226;margin-top:8px}.save-password-btn:hover{opacity:.95;box-shadow:0 3px 10px #1976d240}.dialog-success-toast{color:#2e7d32;font-size:12px;margin-bottom:12px;background:#e8f5e9;border:1px solid #a5d6a7;padding:8px 12px;border-radius:6px;font-weight:550}.doc-page{text-align:left;line-height:1.6}.doc-meta{font-size:12px;color:#718096;margin-top:-10px;margin-bottom:24px}.doc-page h4{font-size:14px;font-weight:650;color:#2d3748;margin:24px 0 8px}.doc-page p{font-size:13.5px;color:#4a5568;margin:0 0 16px}.doc-page ul{font-size:13.5px;color:#4a5568;margin:0 0 16px;padding-left:20px}.doc-page li{margin-bottom:8px}.shortcuts-table{width:100%;border-collapse:collapse;margin:16px 0}.shortcuts-table th,.shortcuts-table td{padding:10px 12px;text-align:left;border-bottom:1px solid #e2e8f0;font-size:13px}.shortcuts-table th{background:#f7fafc;font-weight:650;color:#4a5568}.shortcuts-table td kbd{background:#edf2f7;border:1px solid #cbd5e0;border-radius:4px;padding:2px 6px;font-size:11px;font-family:ui-monospace,Menlo,monospace;box-shadow:0 1px #0000001a;font-weight:700}.admin-console-view{display:flex;flex-direction:column;gap:20px;animation:adminFadeIn .3s ease}@keyframes adminFadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.admin-subtabs{display:flex;gap:12px;border-bottom:1px solid #e2e8f0;padding-bottom:8px}.admin-subtab-btn{display:flex;align-items:center;gap:8px;background:transparent;color:#718096;border:none;border-bottom:2px solid transparent;border-radius:0;padding:8px 12px;font-size:13.5px;font-weight:600;cursor:pointer;transition:all .2s ease}.admin-subtab-btn:hover{color:#2d3748;background:#00000005}.admin-subtab-btn.active{color:#1976d2;border-bottom-color:#1976d2}.admin-subtab-btn .subtab-icon{flex-shrink:0}.admin-table-container{background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008;overflow:hidden}.admin-table{width:100%;border-collapse:collapse;text-align:left}.admin-table th,.admin-table td{padding:14px 18px;border-bottom:1px solid #edf2f7;font-size:13.5px}.admin-table th{background:#f7fafc;color:#4a5568;font-weight:650;text-transform:uppercase;font-size:11px;letter-spacing:.05em}.admin-table tbody tr:hover{background:#fcfdfe}.admin-table td.text-bold{font-weight:600;color:#2d3748}.user-email-cell{display:flex;align-items:center;gap:10px}.user-avatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#ebf8ff;color:#2b6cb0;font-weight:700;font-size:12px}.user-email-text{font-weight:500;color:#2d3748;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:9999px;font-size:11.5px;font-weight:600;text-transform:capitalize}.role-badge.admin{background:#feebc8;color:#c05621}.role-badge.user{background:#e2e8f0;color:#4a5568}.limit-display{display:inline-flex;align-items:center;gap:4px;font-family:ui-monospace,Menlo,Monaco,Consolas,monospace;font-size:13px}.count-num{font-weight:600;color:#2d3748}.limit-divider{color:#cbd5e0}.limit-num{color:#718096}.board-badge{display:inline-flex;padding:3px 8px;background:#ebf8ff;color:#2b6cb0;border-radius:6px;font-size:12px;font-weight:550}.table-actions{display:flex;gap:8px}.table-action-btn{padding:5px 10px;font-size:12px;font-weight:600;border-radius:6px;border:1px solid transparent;cursor:pointer;transition:all .15s ease}.table-action-btn.edit{background:#edf2f7;color:#4a5568;box-shadow:none}.table-action-btn.edit:hover{background:#e2e8f0;color:#2d3748}.table-action-btn.delete{background:transparent;border-color:#fed7d7;color:#c53030;box-shadow:none}.table-action-btn.delete:hover{background:#fff5f5;border-color:#feb2b2}.dialog-desc{margin-bottom:20px;font-size:14px;color:#4a5568;line-height:1.5}.scope-panel{position:absolute;top:14px;right:14px;bottom:14px;width:440px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 4px 20px #102a4329;padding:16px;z-index:100;display:flex;flex-direction:column;gap:14px;overflow-y:auto}.scope-panel header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:2px}.scope-panel header strong{font-size:15px;font-weight:650;color:var(--text)}.scope-grid-3{display:grid;grid-template-columns:1fr 1fr;gap:14px}.scope-section{border:1px solid var(--border);border-radius:8px;padding:12px;background:var(--bg)}.scope-section h4{margin:0 0 10px;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-dim);letter-spacing:.05em;display:flex;align-items:center;gap:6px}.scope-section h4 input[type=checkbox]{margin:0;cursor:pointer}.scope-control-row{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.scope-control-row label{font-size:11px;font-weight:550;color:var(--text-dim)}.scope-control-row select{width:100%;outline:none}.scope-control-row input[type=range]{width:100%;cursor:pointer}
