*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.block{display:block}.grid{display:grid}.hidden{display:none}.\!transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.rounded{border-radius:.25rem}.border{border-width:1px}.\!outline{outline-style:solid!important}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{--bg: #fafaf9;--surface: #ffffff;--ink: #1c1917;--muted: #78716c;--line: #e7e5e4;--focus: #a5b4fc;font-family:Segoe UI,system-ui,-apple-system,Helvetica Neue,Arial,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}::-moz-selection{background:var(--focus);color:var(--ink)}::selection{background:var(--focus);color:var(--ink)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.boards-page{min-height:100vh;padding:56px clamp(20px,6vw,96px);background:var(--bg)}.boards-panel{width:min(1080px,100%);margin:0 auto}.boards-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:42px}.boards-header-actions{display:flex;align-items:center;gap:10px}.boards-sort{display:flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--line);border-radius:10px;background:#fbfaf7e6}.boards-sort-label{padding:0 8px 0 6px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.boards-sort button{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 10px;border:0;border-radius:7px;color:var(--muted);background:transparent;font-size:11px;font-weight:600;transition:background-color .15s,color .15s}.boards-sort button:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 6%,transparent)}.boards-sort button.is-active{color:var(--surface);background:var(--ink)}.boards-sort button.is-active:hover{color:var(--surface);background:color-mix(in srgb,var(--ink) 85%,#ffffff)}.boards-sort .boards-sort-direction{width:30px;padding:0}.account-email{max-width:210px;overflow:hidden;font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.account-menu{position:fixed;z-index:30;top:18px;right:22px}.account-trigger{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 12px;border:1px solid var(--line);border-radius:999px;color:var(--ink);background:color-mix(in srgb,var(--surface) 90%,transparent);box-shadow:0 7px 20px #1c19170f;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:border-color .15s,box-shadow .15s}.account-trigger:hover{border-color:color-mix(in srgb,var(--muted) 50%,transparent);box-shadow:0 8px 22px #1c19171a}.account-trigger svg{flex:0 0 auto;color:var(--muted)}.account-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:190px;display:flex;flex-direction:column;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 14px 34px #1c191724}.account-dropdown button{width:100%;padding:9px 10px;border:0;border-radius:6px;color:var(--ink);background:transparent;font-size:12px;text-align:left;transition:background-color .15s}.account-dropdown button:hover{background:color-mix(in srgb,var(--ink) 6%,transparent)}.password-form{display:grid;gap:14px;margin-top:20px}.password-form label{display:grid;gap:7px;color:var(--muted);font-size:11px;font-weight:700}.password-form input{height:42px;padding:0 11px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface)}.password-notice{margin:0;color:#15803d;font-size:12px}.boards-eyebrow{margin:0 0 9px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.16em}.boards-header h1{margin:0;color:var(--ink);font-size:clamp(34px,5vw,56px);font-weight:600;letter-spacing:-.03em}.boards-intro{margin:12px 0 0;color:var(--muted);font-size:14px}.new-board-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 16px;border:1px solid var(--ink);border-radius:8px;color:var(--surface);background:var(--ink);font-size:12px;font-weight:700;white-space:nowrap;box-shadow:0 7px 16px #1c191724;transition:background-color .15s,border-color .15s}.new-board-button:hover{background:color-mix(in srgb,var(--ink) 85%,#ffffff);border-color:color-mix(in srgb,var(--ink) 85%,#ffffff)}.boards-tags-button{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:0 14px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--surface);font-size:12px;font-weight:700;white-space:nowrap;transition:color .15s,border-color .15s}.boards-tags-button:hover{color:var(--ink);border-color:color-mix(in srgb,var(--muted) 50%,transparent)}.tag-row-name{display:inline-flex;align-items:center;gap:8px;color:var(--ink);font-size:13px;font-weight:600}.tag-empty{margin:0;color:var(--muted);font-size:12px}.board-tags-panel .tag-toggle{min-height:34px;padding:0 8px;border-radius:8px}.tag-toggle.is-assigned{background:color-mix(in srgb,var(--ink) 6%,transparent)}.boards-list{max-height:calc(100vh - 250px);overflow-y:auto;padding:8px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 18px 48px #1c19170d;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--muted) 40%,transparent) transparent}.boards-list::-webkit-scrollbar{width:6px}.boards-list::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 40%,transparent);border-radius:999px}.boards-list::-webkit-scrollbar-track{background:transparent}.board-row{min-height:78px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);border-radius:12px}.board-row:last-child{border-bottom:0}.board-row-main{min-width:0;flex:1;display:flex;align-items:center;gap:18px;padding:16px 12px;border:0;border-radius:10px;color:var(--ink);text-align:left;background:transparent;transition:background-color .15s}.board-row-main:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}.board-row-number{width:30px;flex:0 0 30px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.14em}.board-row-details{min-width:0;flex:1;display:flex;flex-direction:column;gap:6px}.board-row-details strong{overflow:hidden;color:var(--ink);font-size:17px;font-weight:600;letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap}.board-row-details small{color:var(--muted);font-size:11px}.board-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.tag-chip{display:inline-flex;align-items:center;height:20px;padding:0 9px;border-radius:999px;background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.02em}.board-tags-panel{margin:0 12px 10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.board-tags-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.tag-list{display:grid;gap:8px}.tag-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:40px;padding:0 10px;border-radius:8px}.tag-row.is-assigned{background:color-mix(in srgb,var(--ink) 5%,transparent)}.tag-toggle{display:inline-flex;align-items:center;gap:9px;color:var(--ink);font-size:13px;cursor:pointer}.tag-toggle input{accent-color:var(--ink)}.tag-row-actions{display:flex;align-items:center;gap:4px;margin-left:auto}.tag-name-input{width:100%;min-width:0;height:34px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:13px}.tag-add{display:grid;gap:12px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.tag-edit{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.tag-color-line{display:flex;align-items:center;gap:10px}.tag-color-label{flex:0 0 auto;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.tag-color-row{display:flex;flex:1;flex-wrap:wrap;align-items:center;gap:8px}.tag-color-swatch{width:24px;height:24px;padding:0;border:0;border-radius:999px;box-shadow:inset 0 0 0 1px #1c191729;transition:transform .12s}.tag-color-swatch:hover{transform:scale(1.1)}.tag-color-swatch.is-active{box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--ink)}.tag-dot{display:inline-block;width:9px;height:9px;flex:0 0 auto;border-radius:999px}.tag-error{margin:8px 0 0;color:#b91c1c;font-size:11px}.board-row-arrow{flex:0 0 auto;color:var(--muted)}.board-row-form{padding:12px}.board-name-input{min-width:0;flex:1;height:38px;padding:0 11px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);font-size:14px}.board-row-actions{display:flex;align-items:center;gap:4px}.row-action{display:grid;width:34px;height:34px;place-items:center;padding:0;border:0;border-radius:6px;color:var(--muted);background:transparent;transition:color .15s,background-color .15s}.row-action:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 7%,transparent)}.row-action.is-confirm{color:var(--surface);background:var(--ink)}.row-action.is-confirm:hover{background:color-mix(in srgb,var(--ink) 85%,#ffffff)}.row-action.is-danger{color:#b91c1c}.row-action.is-danger:hover{color:#b91c1c;background:#fee2e2}.board-row-main:disabled{cursor:default;opacity:.55}.boards-empty{display:grid;justify-items:center;margin:20px 0;padding:70px 20px;border:1px dashed var(--line);border-radius:16px;text-align:center;background:var(--bg)}.boards-empty-mark{display:grid;width:44px;height:44px;place-items:center;border-radius:12px;color:var(--surface);background:var(--ink);font-size:27px;font-weight:300}.boards-empty h2{margin:18px 0 0;color:var(--ink);font-size:22px;font-weight:600;letter-spacing:-.01em}.boards-empty p{margin:8px 0 22px;color:var(--muted);font-size:13px}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.auth-panel{width:min(430px,100%);padding:34px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 18px 48px #1c19170f}.auth-panel h1{margin:0;color:var(--ink);font-size:30px;font-weight:600;letter-spacing:-.02em}.auth-intro{margin:10px 0 24px;color:var(--muted);font-size:13px;line-height:1.5}.auth-form{display:grid;gap:16px}.auth-form label{display:grid;gap:7px;color:var(--muted);font-size:11px;font-weight:700}.auth-form input{height:42px;padding:0 11px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface)}.auth-form .new-board-button{width:100%;margin-top:2px}.auth-form .new-board-button:disabled,.copy-link-button:disabled{cursor:wait;opacity:.55}.auth-error{margin:0;color:#b91c1c;font-size:12px;line-height:1.4}.auth-switch{width:100%;margin-top:20px;padding:0;border:0;color:var(--muted);background:transparent;font-size:12px}.auth-switch:hover{color:var(--ink)}.loading-label{color:var(--muted);font-size:13px}.global-api-error{position:fixed;z-index:50;top:14px;left:50%;transform:translate(-50%);padding:9px 13px;border:1px solid #fecaca;border-radius:8px;color:#7f1d1d;background:#fee2e2;font-size:12px;box-shadow:0 6px 18px #b3484229}.board-shell{position:relative;width:100vw;height:100vh;overflow:hidden;background:var(--bg)}.share-button{position:absolute;z-index:10;top:16px;right:20px;display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--surface);font-size:11px;font-weight:700;box-shadow:0 7px 20px #1c19170f;transition:color .15s,border-color .15s}.share-button:hover{color:var(--ink);border-color:color-mix(in srgb,var(--muted) 50%,transparent)}.board-name-panel{position:absolute;z-index:10;top:16px;left:22px;display:flex;align-items:center;gap:8px;max-width:min(380px,calc(100vw - 180px))}.board-back-button{display:grid;place-items:center;width:36px;height:36px;flex:0 0 auto;padding:0;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--surface);box-shadow:0 7px 20px #1c19170f;transition:color .15s,border-color .15s}.board-back-button:hover{color:var(--ink);border-color:color-mix(in srgb,var(--muted) 50%,transparent)}.board-name-label{display:inline-flex;align-items:center;gap:8px;min-width:0;max-width:100%;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);font-size:13px;font-weight:600;box-shadow:0 7px 20px #1c19170f;transition:border-color .15s}.board-name-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-name-label:not(:disabled):hover{border-color:color-mix(in srgb,var(--muted) 50%,transparent)}.board-name-label:disabled{cursor:default}.board-name-field{width:280px;max-width:100%;height:36px;padding:0 11px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);font-size:13px;font-weight:600}.share-modal-backdrop{position:fixed;z-index:50;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#0c0a0952;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.share-modal{width:min(540px,100%);padding:25px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 24px 70px #1c19172e}.share-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.share-eyebrow{margin:0 0 7px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.16em}.share-modal h2{margin:0;color:var(--ink);font-size:24px;font-weight:600;letter-spacing:-.02em}.share-description{margin:12px 0 20px;color:var(--muted);font-size:13px;line-height:1.5}.modal-close{display:grid;width:32px;height:32px;place-items:center;padding:0;border:0;border-radius:6px;color:var(--muted);background:transparent;transition:color .15s,background-color .15s}.modal-close:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 7%,transparent)}.share-link-row{display:flex;gap:8px}.share-link-row input{min-width:0;flex:1;height:40px;padding:0 10px;overflow:hidden;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--surface);font-size:11px;text-overflow:ellipsis}.copy-link-button{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 12px;border:0;border-radius:8px;color:var(--surface);background:var(--ink);font-size:11px;font-weight:700;white-space:nowrap;transition:background-color .15s}.copy-link-button:hover{background:color-mix(in srgb,var(--ink) 85%,#ffffff)}.share-options{display:grid;gap:8px;margin:22px 0 0;padding:0;border:0}.share-options legend{margin-bottom:8px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.share-option{display:flex;align-items:flex-start;gap:11px;padding:12px;border:1px solid var(--line);border-radius:8px;cursor:pointer;transition:border-color .15s,background-color .15s}.share-option.is-selected{border-color:var(--muted);background:var(--bg)}.share-option input{margin:3px 0 0;accent-color:var(--ink)}.share-option span{display:grid;gap:4px}.share-option strong{color:var(--ink);font-size:13px}.share-option small{color:var(--muted);font-size:11px}.workspace{position:relative;width:100%;height:100%}.tool-rail{position:absolute;z-index:5;top:92px;left:22px;width:72px;flex:0 0 72px;display:flex;flex-direction:column;align-items:center;gap:13px;padding:14px 10px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 7px 20px #1c19170d}.tool-rail.is-read-only{display:none}.read-only-badge{position:absolute;z-index:10;top:18px;right:20px;padding:8px 11px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--surface);font-size:11px;box-shadow:0 7px 20px #1c19170f}.tool-group{display:flex;flex-direction:column;gap:7px}.tool-button,.zoom-controls button{display:grid;place-items:center;border:0;color:var(--muted);background:transparent;transition:color .15s,background-color .15s}.tool-button{width:42px;height:42px;border-radius:6px}.tool-button:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 7%,transparent)}.tool-button.is-active{color:var(--surface);background:var(--ink);box-shadow:0 4px 8px #1c191729}.shape-tool{position:relative}.shape-menu{position:absolute;z-index:6;top:0;left:calc(100% + 16px);display:flex;flex-direction:column;gap:5px;padding:7px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 7px 20px #1c19171a}.shape-menu button{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:6px;color:var(--muted);background:transparent;transition:color .15s,background-color .15s}.shape-menu button:hover,.shape-menu button.is-active{color:var(--ink);background:color-mix(in srgb,var(--ink) 7%,transparent)}.rail-divider{width:34px;height:1px;background:var(--line)}.color-control,.width-control{display:flex;flex-direction:column;align-items:center;gap:7px}.color-control{position:relative}.color-control label,.width-control label{color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.color-button{width:28px;height:28px;padding:0;border:2px solid var(--surface);border-radius:999px;box-shadow:inset 0 0 0 1px #1c191729;transition:box-shadow .15s}.color-button:hover{box-shadow:0 0 0 1px var(--muted)}.color-menu{position:absolute;z-index:6;top:0;left:calc(100% + 16px);display:flex;flex-direction:column;gap:12px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 7px 20px #1c19171a}.color-menu-width{display:flex;flex-direction:column;align-items:center;gap:7px}.color-menu-width label{color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.color-menu-width input{width:100%;accent-color:var(--ink)}.color-menu-grid{display:grid;grid-template-columns:repeat(6,22px);gap:6px}.palette-swatch{width:22px;height:22px;padding:0;border:0;border-radius:999px;box-shadow:inset 0 0 0 1px #1c191729;transition:transform .12s}.palette-swatch:hover{transform:scale(1.1)}.palette-swatch.is-active{box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--ink)}.color-swatches{display:flex;flex-direction:column;gap:6px}.swatch{width:13px;height:13px;padding:0;border:0;border-radius:999px;box-shadow:inset 0 0 0 1px #1c191729}.width-control{width:48px}.width-control input{width:48px;accent-color:var(--ink)}.width-preview{width:31px;min-height:2px;border-radius:999px;background:var(--ink)}.font-size-value{color:var(--muted);font-size:11px;font-weight:700}.canvas-zone{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background-color:var(--surface)}.grid-layer{position:absolute;top:-120px;right:-120px;bottom:-120px;left:-120px;z-index:0;background-color:var(--surface);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:36px 36px;background-position:0 0;pointer-events:none;will-change:transform}.canvas-zone .canvas-container{position:absolute!important;top:0;right:0;bottom:0;left:0;z-index:1;background:transparent!important}.canvas-zone .upper-canvas{background:transparent!important}.trail-canvas{position:absolute;z-index:3;top:0;right:0;bottom:0;left:0;pointer-events:none}.pen-cursor{position:absolute;z-index:4;top:0;left:0;display:none;border:1px solid color-mix(in srgb,var(--ink) 45%,transparent);border-radius:999px;pointer-events:none;will-change:transform;transform:translate(-50%,-50%)}.pen-cursor-icon{position:absolute;left:50%;top:50%;width:18px;height:18px;color:var(--ink);transform:translateY(-100%)}.pen-cursor-icon svg{width:18px;height:18px}.text-toolbar{position:absolute;z-index:16;display:flex;align-items:center;gap:4px;padding:5px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 10px 26px #1c191724}.text-toolbar-group{display:flex;align-items:center;gap:2px}.text-toolbar button{display:grid;width:28px;height:28px;place-items:center;padding:0;border:0;border-radius:6px;color:var(--muted);background:transparent;transition:color .15s,background-color .15s}.text-toolbar button:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 7%,transparent)}.text-toolbar-sep{width:1px;height:20px;background:var(--line)}.text-toolbar-font{width:38px;height:28px;padding:0 2px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:var(--surface);font-size:12px;font-weight:700;text-align:center;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.text-toolbar-font::-webkit-outer-spin-button,.text-toolbar-font::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.text-toolbar-font:focus{outline:none;border-color:var(--muted)}.text-toolbar-color{position:relative;display:flex;align-items:center}.text-toolbar .text-toolbar-swatch{width:20px;height:20px;border-radius:999px;box-shadow:inset 0 0 0 1px #1c191729}.text-toolbar-palette{position:absolute;z-index:2;top:calc(100% + 8px);left:50%;display:grid;grid-template-columns:repeat(6,22px);gap:6px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 12px 30px #1c191729;transform:translate(-50%)}.text-toolbar .palette-swatch{width:22px;height:22px;border-radius:999px;box-shadow:inset 0 0 0 1px #1c191729}.text-toolbar .palette-swatch.is-active{box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--ink)}.note-editor{position:absolute;z-index:20;display:grid;place-items:center;box-sizing:border-box}.note-editor-input{width:100%;overflow:visible;text-align:center;outline:none;font-family:Segoe UI,system-ui,sans-serif;font-weight:600;line-height:1.16;white-space:pre-wrap;overflow-wrap:normal;word-break:normal}.note-editor-input::-moz-selection{color:inherit}.note-editor-input::selection{color:inherit}.zoom-controls{position:absolute;display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 7px 20px #1c19170f;right:20px;bottom:18px;overflow:hidden}.zoom-controls button{width:33px;height:32px;color:var(--muted);font-size:18px}.zoom-controls button:hover{background:color-mix(in srgb,var(--ink) 7%,transparent)}.zoom-controls .zoom-value{width:54px;border-right:1px solid var(--line);border-left:1px solid var(--line);font-size:11px;font-weight:700}.notice{position:absolute;z-index:4;left:108px;top:96px;padding:9px 13px;border-radius:8px;color:var(--surface);background:var(--ink);font-size:12px;box-shadow:0 5px 15px #1c19172e}.graph-panel{position:fixed;z-index:40;top:0;right:0;display:flex;width:min(380px,100vw);height:100%;flex-direction:column;overflow-y:auto;padding:24px;border-left:1px solid var(--line);background:var(--surface);box-shadow:-18px 0 50px #1c191724;animation:graph-panel-in .22s ease-out}.graph-panel-header{position:sticky;top:0;z-index:1;padding-bottom:4px;background:var(--surface)}.graph-panel h2{margin:0;color:var(--ink);font-size:22px;font-weight:600;letter-spacing:-.02em}@keyframes graph-panel-in{0%{transform:translate(100%)}to{transform:translate(0)}}.graph-composer{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:20px 0 0}.graph-composer-input{min-width:0;flex:1;height:36px;padding:0 11px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);font-size:13px;font-family:Segoe UI,system-ui,sans-serif}.graph-composer-input:focus{outline:none;border-color:var(--muted)}.graph-composer-input.is-invalid{border-color:#dc2626}.graph-composer-add{display:grid;width:36px;height:36px;place-items:center;padding:0;border:0;border-radius:8px;color:var(--surface);background:var(--ink);transition:background-color .15s}.graph-composer-add:hover{background:color-mix(in srgb,var(--ink) 85%,#ffffff)}.graph-composer-hint{flex-basis:100%;color:var(--muted);font-size:11px}.graph-items{display:flex;flex-direction:column;gap:8px;margin:16px 0 0}.graph-function-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.graph-color-input{width:30px;height:30px;padding:0;border:1px solid var(--line);border-radius:6px;background:none;cursor:pointer}.graph-function-name{color:var(--muted);font-size:12px;font-weight:700}.graph-expression-input{min-width:0;flex:1;height:34px;padding:0 10px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);font-size:13px;font-family:Segoe UI,system-ui,sans-serif}.graph-expression-input:focus{outline:none;border-color:var(--muted)}.graph-expression-input.is-invalid{border-color:#dc2626}.graph-visibility,.graph-remove{display:grid;width:30px;height:30px;place-items:center;padding:0;border:1px solid var(--line);border-radius:6px;color:var(--muted);background:transparent;transition:color .15s,background-color .15s,border-color .15s}.graph-visibility.is-active{color:var(--ink);border-color:var(--muted)}.graph-visibility:hover,.graph-remove:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 7%,transparent)}.graph-error{flex-basis:100%;color:#dc2626;font-size:11px}.graph-section{display:flex;flex:none;flex-direction:column;gap:10px;margin-top:20px}.graph-section-title{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.graph-section-toggle{display:flex;align-items:center;gap:6px;padding:0;border:0;color:var(--muted);background:transparent;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-family:inherit;cursor:pointer}.graph-section-toggle svg{transition:transform .15s}.graph-section-toggle svg:not(.is-open){transform:rotate(-90deg)}.graph-point-row{display:flex;align-items:center;gap:8px}.graph-point-label{color:var(--muted);font-size:11px;font-style:italic;font-weight:700}.graph-coordinate-input{min-width:0;flex:1;height:32px;padding:0 8px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);font-size:13px}.graph-coordinate-input:focus{outline:none;border-color:var(--muted)}.graph-toggle{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:13px}.graph-toggle input{accent-color:var(--ink)}.graph-param-row{display:flex;align-items:center;gap:10px}.graph-param-name{width:16px;color:var(--ink);font-size:13px;font-style:italic;font-weight:700}.graph-param-row input{flex:1;accent-color:var(--ink)}.graph-param-value{width:34px;color:var(--muted);font-size:11px;font-weight:700;text-align:right}.graph-done{flex:none;align-self:stretch;justify-content:center;height:46px;margin-top:24px;font-size:13px}.solid-types{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.solid-type{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 8px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:var(--surface);font-size:11px;font-family:inherit;text-align:center;transition:border-color .15s,background-color .15s,color .15s}.solid-type:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}.solid-type.is-active{border-color:var(--ink);background:color-mix(in srgb,var(--ink) 8%,transparent)}.solid-hint{color:var(--muted);font-size:11px;line-height:1.5}.geometry-tool-group{display:flex;flex-direction:column;gap:6px;margin-top:8px}.geometry-tool-group-title{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.geometry-tool-group .solid-mode{padding:7px 8px;font-size:11px}.geometry-group{display:flex;flex-direction:column;gap:6px}.geometry-group-header{display:flex;align-items:center;gap:6px;padding:4px 2px;border:0;color:var(--muted);background:transparent;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-family:inherit}.geometry-group-header svg{transition:transform .15s}.geometry-group-header svg.is-open{transform:rotate(0)}.geometry-group-header svg:not(.is-open){transform:rotate(-90deg)}.geometry-group-count{margin-left:auto;color:var(--muted);font-size:10px;font-weight:700}.geometry-object{display:flex;align-items:center;gap:8px;width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);font-size:12px;font-family:inherit;text-align:left;transition:border-color .15s,background-color .15s}.geometry-object:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}.geometry-object.is-active{border-color:var(--ink);background:color-mix(in srgb,var(--ink) 8%,transparent)}.geometry-object.is-invalid{border-color:#dc2626}.geometry-object-kind{flex:none;padding:1px 6px;border-radius:6px;color:var(--muted);background:color-mix(in srgb,var(--ink) 7%,transparent);font-size:10px;font-weight:700;letter-spacing:.02em}.geometry-object-label{flex:none;font-weight:700}.geometry-object-note{flex:1;min-width:0;overflow:hidden;color:var(--muted);font-size:11px;text-align:right;text-overflow:ellipsis;white-space:nowrap}.geometry-point{display:flex;flex-direction:column;gap:4px}.geometry-point.is-invalid .graph-expression-input{border-color:#dc2626}.geometry-row-error{color:#dc2626;font-size:11px}.geometry-row{display:flex;align-items:center;gap:8px}.geometry-row .graph-expression-input{height:30px;font-size:12px}.geometry-row-note{flex:1;min-width:0;overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.geometry-card{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--line);border-radius:10px}.geometry-select{height:30px;padding:0 8px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);font-size:12px;font-family:inherit}.geometry-solid-row{display:flex;align-items:center;gap:8px}.geometry-solid-name{flex:1;min-width:0;padding:8px 10px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);font-size:13px;font-family:inherit;text-align:left;transition:border-color .15s,background-color .15s}.geometry-solid-name:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}.geometry-solid-row.is-active .geometry-solid-name{border-color:var(--ink);background:color-mix(in srgb,var(--ink) 8%,transparent);font-weight:600}.solid-zoom{display:flex;align-items:center;justify-content:space-between;gap:10px}.solid-zoom-value{color:var(--muted);font-size:12px;font-weight:700}.solid-reset{align-self:flex-start;padding:7px 12px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:transparent;font-size:12px;font-family:inherit;transition:color .15s,background-color .15s}.solid-reset:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 7%,transparent)}.solid-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.solid-mode{flex:1;padding:8px 10px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);font-size:12px;font-family:inherit;transition:border-color .15s,background-color .15s}.solid-mode:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}.solid-mode.is-active{border-color:var(--ink);background:color-mix(in srgb,var(--ink) 8%,transparent);font-weight:600}.solid-panel{padding:0 24px 24px}.solid-panel .graph-panel-header{padding-top:20px}@media(max-width:640px){.boards-page{padding:34px 16px}.account-menu{top:10px;right:10px}.boards-header{align-items:flex-start;flex-direction:column;margin-bottom:28px}.boards-header h1{font-size:40px}.boards-header-actions{width:100%;flex-wrap:wrap}.boards-header-actions .new-board-button{flex:1}.new-board-button{width:100%}.board-row-main{gap:10px;padding-left:6px}.board-row-details strong{font-size:16px}.share-button{top:10px;right:10px}.share-button span{display:none}.board-name-panel{top:10px;left:10px;max-width:calc(100vw - 130px)}.board-name-field{width:200px}.read-only-badge{top:10px;right:10px}.share-modal{padding:20px}.share-link-row{flex-direction:column}.copy-link-button{width:100%}.tool-rail{top:84px;left:10px;width:58px;flex-basis:58px;padding:10px 6px}.tool-button{width:40px;height:40px}.notice{left:78px;top:88px;max-width:calc(100vw - 88px)}}
