:root{--font-serif: "Arpona", "arpona", Georgia, "Times New Roman", serif;--font-sans: "ArponaSans", "arponasans", "Avenir Next", "Trebuchet MS", sans-serif;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1.0625rem;--text-bg: 1.15rem;--text-lg: 1.25rem;--text-xl: 1.4rem;--text-2xl: 1.6rem;--text-3xl: 1.875rem;--text-4xl: 2.125rem;--text-5xl: 3rem;--text-6xl: 4rem;--color-gray: #909491;--color-gray-50: #fcfcfc;--color-gray-100: #f5f5f5;--color-gray-200: #d6d8d6;--color-gray-300: #bfc1bf;--color-gray-400: #a7aba8;--color-gray-500: #909491;--color-gray-600: #6f7370;--color-gray-700: #4e514f;--color-gray-800: #2e2f2e;--color-gray-900: #0d0e0d;--color-primary: #211e87;--color-primary-50: #dad9f7;--color-primary-100: #bfbef0;--color-primary-200: #8a87e4;--color-primary-300: #5551d8;--color-primary-400: #2e2abd;--color-primary-500: #211e87;--color-primary-600: #1e1b7a;--color-primary-700: #1b186e;--color-primary-800: #181661;--color-primary-900: #151355;--color-primary-bg: #232163;--color-secondary: #f0b80a;--color-secondary-50: #f9d874;--color-secondary-100: #f9d567;--color-secondary-200: #f8ce4f;--color-secondary-300: #f6c836;--color-secondary-400: #f5c11e;--color-secondary-500: #f0b80a;--color-secondary-600: #e6b00a;--color-secondary-700: #dca909;--color-secondary-800: #d2a109;--color-secondary-900: #b29146;--color-secondary-1000: #aa7d24;--color-tertiary: #6d43a3;--color-tertiary-50: #ccbbe3;--color-tertiary-100: #c2acdd;--color-tertiary-200: #ac8fd1;--color-tertiary-300: #9772c5;--color-tertiary-400: #8155b9;--color-tertiary-500: #6d43a3;--color-tertiary-600: #52337b;--color-tertiary-700: #382253;--color-tertiary-800: #1d122c;--color-tertiary-900: #030204;--brand-primary: var(--color-primary-500);--brand-primary-bg: var(--color-primary-bg);--brand-secondary: var(--color-secondary-500);--brand-gray: var(--color-gray-500);color:#2e2f2e;font-family:var(--font-sans);background:#f5f6fa}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{overflow:hidden;background:#f5f6fa}button,input{font:inherit}.app-shell{display:flex;flex-direction:column;height:100%;gap:12px;padding:12px}.top-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;border:1px solid #dfe3ef;background:#fff}.brand-link{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0}.brand-logo{height:38px;width:auto}.brand-tagline{color:var(--color-primary-700);font-family:var(--font-sans);font-size:.93rem;font-weight:400;letter-spacing:.01em;white-space:nowrap}.top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.add-button{border:1px solid transparent;border-radius:8px;padding:10px 18px;background:var(--color-primary-700);color:#fff;font-weight:700;cursor:pointer;transition:background-color .12s ease,border-color .12s ease}.add-button:hover{background:var(--color-secondary-500);border-color:#fff;color:#fff}.language-switch{display:inline-flex;align-items:center;gap:0;border:1px solid #cfd3df;border-radius:999px;padding:2px;background:#f7f8fd}.language-switch button{border:none;border-radius:999px;background:transparent;color:#575d70;min-width:34px;height:28px;padding:0 10px;cursor:pointer;font-size:.72rem;font-weight:700;letter-spacing:.02em}.language-switch button.active{background:var(--color-primary-700);color:#fff}.language-switch button:not(.active):hover{background:#eef1fb;color:var(--color-primary-700)}.status-menu{position:relative}.status-dot-button{width:30px;height:30px;border-radius:999px;border:none;background:transparent;display:grid;place-items:center;cursor:pointer}.status-dot{width:11px;height:11px;border-radius:50%}.status-dot-button.online .status-dot{background:#1b9a70}.status-dot-button.offline .status-dot{background:#d15a46}.status-dropdown{position:absolute;top:calc(100% + 8px);right:0;z-index:30;width:min(380px,calc(100vw - 30px));border:1px solid #d0d3df;border-radius:12px;background:#fff;padding:10px}.status-row{display:grid;grid-template-columns:90px 1fr;gap:8px;align-items:start;padding:5px 0;font-size:.86rem;color:#555b69}.status-row strong{color:#282d3c;font-weight:600}.status-row code{word-break:break-all;font-size:.79rem;color:#3b4460;background:#f4f6fb;border:1px solid #d8dbe8;border-radius:6px;padding:2px 6px}.status-link-value{display:flex;align-items:center;gap:6px;min-width:0}.status-link-value code{min-width:0;max-height:80px;overflow:auto}.status-login-form,.status-room-create-form{margin-top:8px;display:flex;flex-direction:column;gap:7px}.status-login-form label,.status-room-create-form label{display:flex;flex-direction:column;gap:4px;font-size:.81rem;color:#555b69}.status-login-form input,.status-room-create-form input,.status-room-create-form select{border:1px solid #d0d6e4;border-radius:8px;padding:7px 9px;background:#fff;color:#27304d}.status-inline-button{border:1px solid transparent;border-radius:8px;background:var(--color-primary-700);color:#fff;padding:7px 10px;font-size:.8rem;font-weight:700;cursor:pointer;transition:background-color .12s ease,border-color .12s ease}.status-inline-button:hover{background:var(--color-secondary-500);border-color:#fff}.status-inline-button:disabled{opacity:.55;cursor:not-allowed}.header-nav-link{text-decoration:none;line-height:1;display:inline-flex;align-items:center}.header-icon-button{width:34px;height:34px;border-radius:10px;border:none;background:transparent;color:var(--color-primary-700);display:grid;place-items:center;padding:0;cursor:pointer}.header-icon-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.header-icon-button:hover{background:var(--color-primary-50)}.status-error{margin:7px 0 0;color:#b04a34;font-size:.8rem}.status-info{margin:7px 0 0;color:#4a5471;font-size:.8rem}.status-room-list-wrap{margin-top:10px}.status-room-title{margin:0 0 6px;font-size:.82rem;color:#555b69}.status-empty{margin:0;font-size:.8rem;color:#687089}.status-room-list{display:flex;flex-direction:column;gap:6px;max-height:180px;overflow:auto;padding-right:2px}.status-room-item{border:1px solid #d3d7e4;border-radius:8px;background:#fff;text-align:left;padding:6px 8px;display:flex;flex-direction:column;gap:2px;cursor:pointer;color:#27304d}.status-room-item span{font-size:.84rem;font-weight:600}.status-room-item small{color:#66708d;font-size:.74rem}.status-room-item.active{border-color:var(--color-primary-500);background:var(--color-primary-50)}.user-edit-item{gap:8px}.user-edit-item label{display:flex;flex-direction:column;gap:4px;font-size:.77rem;color:#4b536b}.user-edit-item input,.user-edit-item select{border:1px solid #d0d6e4;border-radius:8px;padding:7px 9px;background:#fff;color:#27304d}.user-edit-item .status-inline-button{align-self:flex-end}.timeline-editor{margin-top:10px;display:flex;flex-direction:column;gap:6px}.timeline-editor input,.timeline-editor textarea{border:1px solid #d0d6e4;border-radius:8px;padding:7px 9px;background:#fff;color:#27304d;font:inherit}.timeline-editor textarea{resize:vertical;min-height:72px}.timeline-editor-panel{margin-top:0}.timeline-list{margin-top:10px;display:flex;flex-direction:column;gap:8px;max-height:300px;overflow:auto;padding-right:2px}.timeline-item{border:1px solid #d3d7e4;border-radius:8px;background:#fff;padding:8px}.timeline-item-head{display:flex;justify-content:space-between;gap:8px}.timeline-item-head strong{font-size:.84rem;color:#27304d}.timeline-item-head span{color:#66708d;font-size:.74rem;white-space:nowrap}.timeline-item p{margin:6px 0 0;font-size:.79rem;color:#44506d}.timeline-item-actions{margin-top:8px;display:flex;gap:6px}.timeline-export-row{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap}.room-tools-grid .status-action-button{min-width:120px}.room-tools-toggle{display:inline-flex;align-items:center;gap:6px;margin-top:4px;font-size:.82rem;color:#4f576e}.status-actions{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap}.status-action-button{border:1px solid #cfd5e5;border-radius:8px;background:#fff;color:var(--color-primary-700);padding:6px 10px;font-size:.78rem;font-weight:600;cursor:pointer}.status-action-button:hover{border-color:var(--color-primary-500);background:var(--color-primary-50)}.status-action-button:disabled{opacity:.55;cursor:not-allowed}.danger-inline{border-color:#dcb1ac;color:#9f3d2f;background:#fff6f4}.danger-inline:hover{border-color:#c87366;background:#ffeceb}.copy-link-button{width:24px;height:24px;border-radius:6px;border:1px solid #cfd5e5;background:#fff;color:var(--color-primary-700);display:grid;place-items:center;cursor:pointer;line-height:1;padding:0}.copy-link-button:hover{border-color:var(--color-primary-500);background:var(--color-primary-50)}.hidden-file-input{display:none}.workspace{min-height:0;flex:1;display:grid;grid-template-columns:1fr 300px;grid-template-rows:minmax(0,1fr);gap:12px;overflow:hidden}.board-stage{min-height:0;display:flex;flex-direction:column;gap:8px}.board-toolbar{border:1px solid #d7dced;border-radius:12px;background:#fff;padding:6px 8px;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.board-toolbar-tools{display:flex;align-items:center;gap:6px;padding-right:6px;border-right:1px solid #e0e5f2}.board-tool-button{width:30px;height:30px;border-radius:8px;border:1px solid #cfd5e5;background:#fff;color:var(--color-primary-700);font-size:1rem;font-weight:700;line-height:1;display:grid;place-items:center;cursor:pointer}.board-tool-button .board-tool-icon{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.board-tool-button .board-tool-icon-line{width:17px;height:17px}.board-tool-button .board-tool-icon-line line{stroke-width:2.2}.board-tool-button:hover{border-color:var(--color-primary-400);background:#f9fbff}.board-tool-button.active{border-color:var(--color-primary-500);background:var(--color-primary-50)}.board-tool-button:disabled{opacity:.55;cursor:not-allowed}.board-toolbar-field{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;color:#4f576e}.board-toolbar-field span{white-space:nowrap}.board-toolbar-field.compact span{font-size:.72rem;font-weight:700;color:#5b6380}.board-toolbar-field input[type=color]{width:32px;height:28px;border:1px solid #cfd4df;border-radius:7px;padding:1px;background:#fff}.board-toolbar-relation{gap:6px}.board-toolbar-relation select{min-width:120px;border:1px solid #cfd4df;border-radius:8px;padding:5px 7px;background:#fff;color:#27304d}.board-toolbar-check{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;color:#4f576e}.board-toolbar-opacity input[type=range]{width:110px}.board-toolbar-opacity strong{min-width:24px;font-size:.75rem;color:#3d4460}.board-toolbar-text textarea{width:min(220px,34vw);border:1px solid #cfd4df;border-radius:8px;padding:5px 7px;background:#fff;color:#27304d;resize:none;line-height:1.25;min-height:46px}.board-toolbar-delete{width:30px;height:30px;border-radius:8px;border:1px solid #d9b6b0;background:#fff;color:#9f3d2f;font-size:.95rem;line-height:1;display:grid;place-items:center;cursor:pointer}.board-toolbar-delete:hover{background:#fff3f1;border-color:#c67a6f}.admin-page{border-radius:14px;border:1px solid #d0d2de;background:#fff;padding:14px;display:flex;flex-direction:column;gap:12px;overflow:auto}.admin-card{border:1px solid #d7dbea;border-radius:10px;padding:12px;background:#fff}.admin-card h2,.admin-card h3{margin:0;color:var(--brand-primary)}.admin-card h2{font-size:1rem}.admin-card h3{font-size:.92rem}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-card-wide{grid-column:1 / -1}.admin-user-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-items:end}.board-root{position:relative;overflow:hidden;border-radius:14px;border:1px solid #d2d4df;background:#fff;cursor:grab;min-height:0;flex:1}.board-root.panning{cursor:grabbing!important}.board-root.tool-line,.board-root.tool-text,.board-root.tool-circle,.board-root.tool-ellipse,.board-root.tool-rectangle{cursor:crosshair}.board-world{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:0 0}.board-lines-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:auto;z-index:0}.annotation-line,.annotation-shape{cursor:pointer}.annotation-line.selected,.annotation-shape.selected{filter:saturate(1.04)}.annotation-handle{fill:#fff;stroke:var(--color-primary-700);stroke-width:1.7;cursor:pointer}.annotation-delete circle{fill:#fff;stroke:#b94b3a;stroke-width:1.5;cursor:pointer}.annotation-delete text{fill:#b94b3a;font-size:11px;font-weight:700;text-anchor:middle;pointer-events:none;-webkit-user-select:none;user-select:none}.board-text-note{position:absolute;max-width:260px;transform:translate(0);font-size:.88rem;line-height:1.2;font-weight:600;background:#ffffffdb;border:1px solid rgba(208,213,226,.95);border-radius:6px;padding:4px 6px;white-space:pre-wrap;pointer-events:auto;cursor:grab;z-index:1}.board-text-note.selected{outline:2px solid rgba(46,42,189,.45);outline-offset:0}.board-text-note:active{cursor:grabbing}.board-text-note-delete{position:absolute;top:-9px;right:-9px;width:18px;height:18px;border-radius:999px;border:1px solid #b94b3a;background:#fff;color:#b94b3a;font-size:.9rem;line-height:1;display:grid;place-items:center;cursor:pointer;padding:0}.board-zoom-controls{position:absolute;right:12px;bottom:12px;display:flex;flex-direction:column;gap:6px;z-index:9}.board-zoom-button{width:30px;height:30px;border-radius:8px;border:1px solid #cfd5e5;background:#fff;color:var(--color-primary-700);font-size:1rem;font-weight:700;line-height:1;display:grid;place-items:center;cursor:pointer}.board-zoom-button:hover{border-color:var(--color-primary-500);background:var(--color-primary-50)}.figure{position:absolute;display:flex;flex-direction:column;align-items:center;-webkit-user-select:none;user-select:none;touch-action:none}.figure-label{margin-bottom:calc(clamp(2px,calc(5px + (var(--figure-scale, 1) - 1) * 18px),34px) + var(--label-extra-gap, 0px));max-width:180px;text-align:center;font-size:.8rem;line-height:1.25;font-weight:500;padding:0;background:transparent;border:none;color:#4e514f}.figure-anchor{position:relative;display:flex;align-items:center;justify-content:center}.figure-body{width:54px;height:54px;border-radius:50%;border:2px solid rgba(102,83,69,.32);display:flex;align-items:center;justify-content:center;position:relative;cursor:grab;transform:rotate(var(--rotation-deg, 0deg)) scale(var(--figure-scale, 1));transform-origin:center;overflow:hidden}.figure-body.textured{background-image:radial-gradient(circle at 30% 26%,#ffffff59,#fff0 44%),repeating-linear-gradient(35deg,#ffffff0f 0,#ffffff0f 4px,#00000008 4px,#00000008 8px)}.figure.selected .figure-body{box-shadow:none;outline:3px solid rgba(69,71,181,.26);outline-offset:2px;border-color:var(--brand-primary)}.figure.selected .figure-shape-triangle{outline:none}.figure.selected .figure-shape-triangle .figure-triangle-stroke{stroke:var(--brand-primary);stroke-width:2.5}.figure:active .figure-body{cursor:grabbing}.figure-emoji{font-size:1.45rem;line-height:1;position:absolute;left:50%;top:50%;z-index:2;display:inline-block;transform:translate(-50%,-50%) rotate(calc(-1 * var(--rotation-deg, 0deg)));transform-origin:center;pointer-events:none}.figure-shape-square{border-radius:14px}.figure-shape-triangle{width:60px;height:60px;border:none;background:transparent!important;border-radius:0;overflow:visible}.figure-shape-triangle.textured{background-image:none}.figure-triangle-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.figure-triangle-fill{fill:var(--figure-fill, #fcfcfc)}.figure-triangle-focus{fill:none;stroke:#4547b557;stroke-width:6;stroke-linejoin:round;transform-box:fill-box;transform-origin:center;transform:scale(1.14);pointer-events:none}.figure-triangle-stroke{fill:none;stroke:#6653455c;stroke-width:2;stroke-linejoin:round}.figure-shape-triangle .figure-emoji{font-size:1.22rem}.figure-eyes{position:absolute;left:50%;top:50%;display:flex;align-items:center;justify-content:center;gap:var(--eye-gap, 4px);transform:translate(-50%,-50%) translateY(calc(-1 * var(--eye-forward, 12px)));z-index:3;pointer-events:none}.figure-eyes.person{gap:var(--eye-gap, 4px)}.figure-eyes.abstract{gap:0}.figure-eye{width:var(--eye-size, 6.5px);height:var(--eye-size, 6.5px);border-radius:50%;background:radial-gradient(circle at 34% 30%,rgba(255,255,255,.62) 0 20%,transparent 22% 100%),radial-gradient(circle at 55% 65%,var(--eye-shade-color, rgba(34, 36, 40, .36)) 0 72%,transparent 73% 100%),var(--eye-color, #2f2924);border:1px solid var(--eye-border-color, rgba(43, 47, 54, .85));box-shadow:inset 0 -1px 1.35px var(--eye-shade-color, rgba(34, 36, 40, .36)),inset 0 1px .8px #ffffff42}.figure-rotate-handle{position:absolute;left:0;top:calc(-1 * var(--handle-radius, 40px));width:24px;height:24px;border-radius:999px;border:1px solid var(--brand-primary);background:#fff;color:var(--brand-primary);font-size:.92rem;font-weight:700;line-height:1;display:grid;place-items:center;cursor:grab;pointer-events:auto;transform:translate(-50%,-50%);z-index:1}.figure-rotate-handle:active{cursor:grabbing}.figure-scale-handle svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.figure-rotate-handle .icon-rotate{width:12px;height:12px;fill:currentColor;stroke:none}.figure-rotation-group{position:absolute;left:50%;top:50%;transform:translate(calc(-50% + var(--handle-origin-x, 0px)),calc(-50% + var(--handle-origin-y, 0px))) rotate(var(--rotation-deg)) rotate(var(--handle-axis-deg, 0deg));width:0;height:0;pointer-events:none;z-index:6}.figure-rotation-arm{position:absolute;left:-1px;top:calc(-1 * var(--handle-radius, 40px) + 14px);width:2px;height:calc(var(--handle-radius, 40px) - 14px);border-radius:999px;background:#211e87cc;pointer-events:none}.figure-scale-group{position:absolute;left:-14px;bottom:-14px;pointer-events:none;z-index:6}.figure-scale-handle{width:24px;height:24px;border-radius:999px;border:1px solid var(--brand-primary);background:#fff;color:var(--brand-primary);font-size:.82rem;font-weight:700;line-height:1;display:grid;place-items:center;cursor:nwse-resize;pointer-events:auto}.figure-scale-handle:active{cursor:nwse-resize}.side-panel{border-radius:14px;border:1px solid #d8dcec;background:linear-gradient(180deg,#fff,#fbfcff);padding:14px;display:flex;flex-direction:column;gap:10px;min-height:0;height:100%;overflow-y:auto}.side-panel h3{margin:0;color:var(--brand-primary)}.panel-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:4px;border:1px solid #d7dcee;border-radius:12px;background:#f6f8ff}.panel-tab{border:1px solid transparent;border-radius:9px;background:transparent;color:#4f5a7c;padding:7px 8px;font-size:.82rem;font-weight:600;line-height:1.15;min-height:44px;display:flex;align-items:center;justify-content:center;text-align:center;white-space:normal;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.panel-tab.active{border-color:#c8d0ed;background:#fff;color:var(--color-primary-700)}.side-panel p{margin:0;color:#5f646c}.panel-section{border:1px solid #dce1ef;border-radius:10px;background:#fff;padding:8px;display:flex;flex-direction:column;gap:6px}.panel-section-title{font-size:.78rem;font-weight:700;color:var(--color-primary-700);text-transform:uppercase;letter-spacing:.03em}.panel-annotation-tools input[type=color]{width:100%;height:34px;border:1px solid #cfd4df;border-radius:8px;background:#fff;padding:2px}.panel-figure-list{--panel-figure-row-height: 30px;display:flex;flex-direction:column;gap:0;margin-bottom:2px;max-height:calc(var(--panel-figure-row-height) * 5);overflow-y:auto;scrollbar-gutter:stable;border:1px solid #d6dced;border-radius:8px}.panel-figure-item{width:100%;min-height:var(--panel-figure-row-height);border:none;border-bottom:1px solid #e2e6f2;border-radius:0;background:#fff;padding:0 10px 0 0;display:flex;align-items:center;gap:4px;color:#3f4760}.panel-figure-item:last-child{border-bottom:none}.panel-figure-item:hover{background:#f9fbff}.panel-figure-item.active{background:var(--color-primary-50);box-shadow:inset 0 0 0 1px var(--color-primary-400)}.panel-figure-select{flex:1;min-width:0;min-height:var(--panel-figure-row-height);border:none;border-radius:0;background:transparent;padding:0 7px;display:flex;align-items:center;gap:6px;text-align:left;color:inherit;cursor:pointer}.panel-figure-quick-delete{width:22px;height:22px;border:1px solid #d9b6b0;border-radius:999px;background:#fff;color:#9f3d2f;display:grid;place-items:center;font-size:.85rem;font-weight:700;line-height:1;padding:0;cursor:pointer}.panel-figure-quick-delete:hover{border-color:#c67a6f;background:#fff3f1}.panel-figure-shape{width:1em;height:1em;display:inline-flex;align-items:center;justify-content:center;text-align:center;font-size:.82rem;line-height:1;flex-shrink:0}.panel-figure-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;line-height:1.1;font-weight:500}.panel-figure-emoji{font-size:.82rem;line-height:1;flex-shrink:0}.panel-add-button{width:100%}.side-panel label{display:flex;flex-direction:column;gap:5px;font-size:.9rem}.side-panel input{width:100%;border-radius:8px;border:1px solid #cfd4df;padding:8px;background:#fff}.side-panel select,.side-panel textarea{width:100%;border-radius:8px;border:1px solid #cfd4df;padding:8px;background:#fff;font:inherit}.side-panel textarea{resize:vertical;min-height:64px}.side-panel input[type=range]{padding:0}.swatch-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.swatch-row span{margin-right:4px;font-size:.86rem}.swatch,.swatch-clear{border:1px solid #cfd3df;border-radius:999px;height:22px;min-width:22px;cursor:pointer}.swatch.active,.swatch-clear.active{outline:2px solid var(--brand-primary);outline-offset:1px}.swatch-clear{padding:0;box-shadow:inset 0 0 0 1px #211e8733}.swatch-row input[type=color]{width:30px;height:24px;border:0;padding:0;background:transparent}.panel-swatches{margin-top:2px}.scale-row{display:flex;align-items:center;gap:8px}.scale-row input[type=range]{flex:1}.scale-up-button{width:34px;height:34px;border-radius:8px;border:1px solid var(--color-primary-200);background:#fff;color:var(--color-primary-700);font-weight:700;cursor:pointer}.scale-up-button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.scale-up-button .icon-rotate{width:14px;height:14px;fill:currentColor;stroke:none}.scale-up-button:hover{border-color:var(--color-primary-500);background:var(--color-primary-50)}.custom-color-row{display:flex;gap:8px;align-items:end}.custom-color-row label{flex:1}.custom-color-row input[type=color]{width:42px;height:38px;border:1px solid #cfd4df;border-radius:8px;background:#fff;padding:2px}.option-row{display:flex;flex-wrap:wrap;gap:6px}.option-pill{border:1px solid #cfd5e5;border-radius:999px;background:#fff;color:var(--color-primary-700);padding:6px 10px;font-size:.8rem;font-weight:600;cursor:pointer}.option-pill.active{border-color:var(--color-primary-500);background:var(--color-primary-50)}.option-pill:disabled{opacity:.5;cursor:not-allowed}.danger{border:none;border-radius:10px;background:linear-gradient(135deg,#ad3f31,#d15a46);color:#fff;padding:9px 10px;font-weight:700;margin-top:auto;cursor:pointer}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#16162d7a;display:grid;place-items:center;z-index:100}.modal-card{width:min(460px,calc(100vw - 30px));border-radius:14px;background:#fff;border:1px solid #d0d2de;padding:16px;display:flex;flex-direction:column;gap:12px;box-shadow:0 18px 42px #281c1147}.modal-card h2{margin:0;color:var(--brand-primary)}.modal-card label{display:flex;flex-direction:column;gap:5px;font-size:.9rem}.modal-card input[type=text]{border-radius:8px;border:1px solid #cfd4df;padding:9px}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.modal-actions button{border-radius:8px;padding:8px 12px;border:1px solid transparent;cursor:pointer}.modal-actions .secondary{background:#fff;border-color:var(--color-primary-200);color:var(--color-primary-700)}.modal-actions .primary{background:var(--color-primary-700);color:#fff;font-weight:700}.modal-actions .primary:disabled{background:#9ea4cb;cursor:not-allowed}.app-dialog-backdrop{z-index:140}.app-dialog-card{width:min(420px,calc(100vw - 30px));gap:14px}.app-dialog-message{margin:0;color:var(--text-main);font-size:.93rem;line-height:1.45}.app-dialog-actions .danger{background:linear-gradient(135deg,#ad3f31,#d15a46);color:#fff;border:1px solid transparent;border-radius:8px;padding:8px 12px;font-weight:700}.app-dialog-actions .danger:hover{filter:brightness(.98)}.emoji-picker{position:relative}.emoji-picker-trigger{width:100%;border:1px solid #cfd4df;border-radius:8px;background:#fff;min-height:38px;padding:7px 10px;text-align:left;cursor:pointer;color:#393d49}.emoji-current{font-size:1.25rem;line-height:1}.emoji-picker-popover{position:absolute;z-index:40;top:calc(100% + 6px);left:0;width:min(340px,calc(100vw - 36px));border:1px solid #d1d4e0;border-radius:10px;background:#fff;box-shadow:0 12px 28px #1b1b2433;padding:10px}.emoji-picker-popover p{margin:0 0 8px;font-size:.82rem;color:#5b6070}.emoji-grid-scroll{max-height:250px;overflow-y:auto;padding-right:2px}.emoji-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px}.emoji-option{border:1px solid #d8dbe7;border-radius:8px;background:#fff;cursor:pointer;font-size:1.1rem;line-height:1;min-height:32px}.emoji-option.active{border-color:var(--brand-primary);background:var(--color-primary-50);box-shadow:inset 0 0 0 1px var(--brand-primary)}.emoji-clear{margin-top:8px;width:100%;border:1px solid #d8dbe7;border-radius:8px;background:#f4f6fb;color:#2b3151;padding:6px 8px;cursor:pointer}@media(max-width:1020px){.workspace,.admin-grid,.admin-user-form{grid-template-columns:1fr}.side-panel{min-height:190px}.board-toolbar{gap:6px}.board-toolbar-tools{border-right:none;padding-right:0}}@media(max-width:860px){.top-bar{flex-direction:column;align-items:stretch}.brand-link{justify-content:space-between}.top-actions{justify-content:flex-start}.status-dropdown{right:auto;left:0}}:root{--surface-canvas: var(--color-gray-100);--surface-card: #fff;--surface-soft: #fafafe;--border-soft: #d9dced;--border-strong: #cfd4e6;--text-main: var(--color-gray-800);--text-soft: var(--color-gray-700);--shadow-soft: 0 10px 28px rgba(17, 19, 24, .08)}body{color:var(--text-main);background:radial-gradient(circle at 0% 0%,rgba(191,190,240,.26),transparent 44%),radial-gradient(circle at 100% 0%,rgba(249,213,103,.2),transparent 46%),var(--surface-canvas)}button,input,select,textarea{transition:border-color .14s ease,background-color .14s ease,box-shadow .14s ease,color .14s ease}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:none;box-shadow:0 0 0 3px #2e2abd2e}.app-shell{gap:10px;padding:10px}.top-bar{padding:10px 12px;border-radius:14px;border-color:var(--border-soft);background:#ffffffeb;box-shadow:var(--shadow-soft)}.brand-tagline{font-family:var(--font-serif);font-size:var(--text-bg);color:var(--color-primary-700)}.add-button{border-radius:10px;padding:9px 14px;background:var(--color-primary-700)}.add-button:hover{background:var(--color-secondary-500);border-color:transparent}.language-switch{color:var(--text-soft)}.status-action-button,.copy-link-button,.status-room-item,.board-tool-button,.board-zoom-button,.option-pill,.panel-figure-item,.scale-up-button,.emoji-option,.emoji-clear,.emoji-picker-trigger{border-color:var(--border-strong);background:var(--surface-card)}.status-dot-button{background:transparent}.header-icon-button{background:transparent;color:var(--color-primary-700)}.status-dot-button:hover,.header-icon-button:hover{background:var(--color-primary-50)}.status-dot-button.online .status-dot{box-shadow:0 0 0 3px #1b9a7029}.status-dot-button.offline .status-dot{box-shadow:0 0 0 3px #d15a4629}.language-switch{border-color:var(--border-strong);background:#f2f4fb;color:var(--text-soft)}.language-switch button{color:var(--text-soft)}.language-switch button.active{background:var(--color-primary-700);color:#fff;box-shadow:0 2px 8px #211e873d}.language-switch button:not(.active):hover{background:var(--color-primary-50);color:var(--color-primary-700)}.status-dropdown,.board-toolbar,.side-panel,.admin-page,.modal-card,.emoji-picker-popover{border-color:var(--border-soft);border-radius:14px;background:var(--surface-card);box-shadow:var(--shadow-soft)}.status-row,.status-login-form label,.status-room-create-form label,.status-room-title,.status-empty,.status-info{color:var(--text-soft)}.status-row code{border-color:var(--border-soft);background:var(--surface-soft);color:var(--text-main)}.status-inline-button{border-radius:9px;background:var(--color-primary-700)}.status-inline-button:hover{background:var(--color-secondary-500);border-color:transparent;color:var(--color-gray-900)}.status-action-button:hover,.copy-link-button:hover,.header-icon-button:hover,.status-room-item:hover,.board-tool-button:hover,.board-zoom-button:hover,.option-pill:hover,.panel-figure-item:hover,.scale-up-button:hover,.emoji-option:hover,.emoji-clear:hover{border-color:var(--color-primary-300);background:var(--color-primary-50)}.status-room-item.active,.panel-figure-item.active,.option-pill.active,.panel-tab.active,.board-tool-button.active{border-color:var(--color-primary-400);background:var(--color-primary-50)}.workspace{gap:10px}.board-toolbar{border-radius:14px;background:#fffffff2}.board-toolbar-tools{border-right-color:var(--border-soft)}.board-root{border-color:var(--border-soft);border-radius:16px;background:#fff}.board-text-note{border-color:var(--border-strong);border-radius:9px;background:#ffffffeb;color:var(--text-main)}.board-text-note.selected{outline:2px solid rgba(46,42,189,.34)}.figure.selected .figure-body{outline:3px solid rgba(85,81,216,.24);border-color:var(--color-primary-500)}.side-panel{border-radius:16px;background:linear-gradient(180deg,#fff,#fbfbff)}.side-panel h3,.admin-card h2,.admin-card h3{font-family:var(--font-serif);color:var(--color-primary-700);font-weight:600}.panel-tabs{border-color:var(--border-soft);background:#f6f7ff}.panel-tab{color:var(--text-soft)}.panel-section,.admin-card,.timeline-item{border-color:var(--border-soft);border-radius:12px;background:var(--surface-card)}.side-panel input,.side-panel select,.side-panel textarea,.status-login-form input,.status-room-create-form input,.status-room-create-form select,.timeline-editor input,.timeline-editor textarea,.board-toolbar-relation select,.board-toolbar-text textarea{border-color:var(--border-strong);border-radius:9px;color:var(--text-main);background:#fff}.modal-backdrop{background:#15135561}@media(max-width:860px){.app-shell{padding:8px;gap:8px}.top-bar{padding:9px 10px}.brand-tagline{font-size:var(--text-base)}.board-toolbar-text textarea{width:min(100%,280px)}}
