:root{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",sans-serif;color:#242c3c;background:#f5f7fa;font-synthesis:none;--blue:#087af5;--muted:#788293;--line:#e7ebf1;--sidebar:218px;--inspector:304px;font-size:14px}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid #7bb8ff;outline-offset:3px}button,a{touch-action:manipulation}button{border:0}button svg,.local-storage svg,.save-status svg,.workspace-footer svg,.inspector-tip svg{width:18px;height:18px;flex-shrink:0}.icon{display:inline-block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}h1,h2,h3,p{margin:0}[hidden]{display:none!important}
.app-shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr) var(--inspector);min-height:100dvh}.sidebar{background:linear-gradient(150deg,#f0f4fa,#f6f8fb 70%);border-right:1px solid #e3e8f0;display:flex;flex-direction:column;padding:30px 16px 18px;position:sticky;top:0;height:100dvh;min-height:500px}.brand{display:flex;gap:10px;align-items:center;padding:0 8px;color:#28334a;text-decoration:none;font-size:17px;font-weight:650;letter-spacing:-.5px}.brand img{border-radius:11px;box-shadow:0 3px 9px #0c528b18}.brand small{font-size:11px;display:block;font-weight:450;letter-spacing:0;color:#8190a4;margin-top:3px}.sidebar-heading{display:flex;align-items:center;justify-content:space-between;margin:45px 6px 10px;color:#8591a4;font-weight:650;font-size:10px;letter-spacing:1.2px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:7px;background:transparent;color:#758398}.icon-button:hover{background:#e6ecf4;color:var(--blue)}.chart-list{display:flex;flex-direction:column;gap:5px;overflow-y:auto;min-height:64px}.chart-list button{width:100%;text-align:left;display:flex;gap:11px;padding:13px 12px;border-radius:9px;background:transparent;align-items:flex-start;color:#6d7b91}.chart-list button:hover{background:#e9eef5}.chart-list button[aria-current=true]{color:#086dde;background:#e2edfc;box-shadow:inset 0 0 0 1px #d5e6fb}.chart-list button svg{margin-top:1px}.chart-list button span{min-width:0}.chart-list strong{display:block;font-size:12px;font-weight:600;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:132px}.chart-list small{display:block;font-size:10px;opacity:.68;margin-top:5px}.new-chart{display:flex;align-items:center;justify-content:center;gap:7px;border:1px dashed #cbd5e3;border-radius:8px;background:transparent;color:#738299;padding:10px;margin-top:14px;font-size:12px}.new-chart:hover{color:var(--blue);border-color:var(--blue);background:#edf4ff}.sidebar-bottom{margin-top:auto;padding-top:30px}.sidebar-action{display:flex;align-items:center;gap:10px;background:transparent;padding:12px 10px;color:#6c7a90;font-size:12px}.sidebar-action:hover{color:var(--blue)}.local-storage{border-top:1px solid #dfe5ee;margin-top:12px;padding:22px 8px 0;display:flex;gap:10px;color:#748299;font-size:11px;align-items:center}.local-storage small{display:block;color:#8e9aae;font-size:10px;margin-top:4px}
.workspace{min-width:0;padding:35px 32px 20px;max-width:1400px;width:100%;margin:auto}.workspace-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:27px;min-height:83px}.eyebrow{display:block;font-size:9px;font-weight:650;letter-spacing:1.6px;color:#8794a7;margin-bottom:8px}h1{font-size:28px;line-height:1.2;font-weight:650;letter-spacing:-1.1px;overflow-wrap:anywhere;max-width:540px}.save-status{display:flex;align-items:center;gap:5px;color:#8a95a5;font-size:10px;margin-top:9px}.save-status svg{width:13px;height:13px;color:#4f9d82}.save-status.dirty svg{color:#cb9854}.header-actions{display:flex;gap:8px;flex-shrink:0}.button{display:inline-flex;justify-content:center;align-items:center;gap:7px;border:1px solid #dfe5ed;border-radius:8px;background:linear-gradient(#fff,#fafbfd);padding:9px 12px;font-size:11px;font-weight:550;box-shadow:0 1px 2px #1b304107;white-space:nowrap;min-height:35px}.button svg{width:15px;height:15px;color:#7f8b9e}.button:hover{background:#f1f5fb;border-color:#c4cfdd}.button.primary{background:linear-gradient(#238bf9,#0878ed);border-color:#0874e3;color:white;box-shadow:0 3px 7px #0074ee20,inset 0 1px 0 #ffffff24}.button.primary:hover{background:#0069dc}.button.primary svg{color:white}.chart-card{background:#fff;border:1px solid #e4e9ef;border-radius:16px;box-shadow:0 3px 6px #263d5812,0 15px 45px #263d5805;overflow:hidden}.chart-card-header{padding:23px 25px 8px;display:flex;align-items:center;justify-content:space-between;gap:12px}.chart-card-header h2{font-size:14px;font-weight:600;letter-spacing:-.2px}.chart-card-header p{font-size:10px;color:#9099a9;margin-top:7px}.mode-control{display:flex;border-radius:7px;background:#f0f2f6;padding:3px;flex-shrink:0}.mode-control button{background:transparent;color:#8a94a3;font-size:10px;padding:7px 10px;border-radius:5px}.mode-control button[aria-pressed=true]{background:white;color:#35445a;box-shadow:0 1px 4px #253a4e16}.chart-stage{width:100%;padding:0 14px;max-width:940px;margin:auto}.chart-stage svg{display:block;width:100%;height:auto;max-height:calc(100dvh - 305px);min-height:400px;overflow:visible}.chart-item{cursor:pointer;outline:none}.tooth-shape{stroke:#bec9d6;stroke-width:1.2;filter:url(#tooth-shadow);transition:fill .18s,stroke .18s}.chart-item:hover .tooth-shape{stroke:#659ade;stroke-width:2}.chart-item.selected .selection-ring,.chart-item:focus-visible .selection-ring{opacity:1}.selection-ring{opacity:0;stroke:#1688fb;stroke-width:2.5;fill:#d7ebff;transition:opacity .15s}.gum-shape{stroke:#dbdfe6;stroke-width:1;transition:fill .15s,stroke .15s}.chart-item:hover .gum-shape{stroke:#7aa9e3}.chart-item.selected .gum-shape{stroke:#1688fb;stroke-width:2}.tooth-groove{fill:none;stroke:#a8b8cd;stroke-width:1;opacity:.45;stroke-linecap:round}.diagram-fdi{fill:#8d9aac;font-size:14px;text-anchor:middle;dominant-baseline:middle;font-weight:500}.diagram-fdi.selected{fill:#087af5;font-weight:700}.jaw-title{fill:#61758c;font-size:11px;letter-spacing:2px;font-weight:600;text-anchor:middle}.jaw-subtitle{fill:#a0acbc;font-size:9px;text-anchor:middle}.side-marker{fill:#a6b2c2;font-size:10px;text-anchor:middle}.arch-guide{fill:none;stroke:#eaf0f6;stroke-width:1;stroke-dasharray:3 5}.chart-item.inactive{opacity:.45}.chart-item.inactive:hover{opacity:1}.chart-legend{padding:9px 23px 22px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap;color:#8590a1;font-size:9px}.chart-legend span{display:inline-flex;align-items:center;gap:5px}.chart-legend b{width:7px;height:7px;border-radius:50%;background:var(--swatch)}.chart-card-footer{background:#fbfcfe;border-top:1px solid #eef1f5;padding:14px 22px;display:flex;justify-content:space-between;gap:10px;font-size:9px;color:#8996a8}.chart-card-footer>span:first-child{color:#677990}.footer-dot{margin:0 5px}.workspace-footer{display:flex;gap:10px;justify-content:space-between;align-items:center;color:#939eae;font-size:9px;margin-top:17px}.workspace-footer>span{display:flex;align-items:center;gap:6px}.workspace-footer svg{width:13px;height:13px}.text-button{background:transparent;padding:5px 0;color:#8996a9;font-size:11px}.text-button:hover{text-decoration:underline}.danger-text:hover{color:#cf5555}.storage-error{padding:14px;background:#fff0e9;color:#9c4a24;border-radius:9px;margin-top:12px;line-height:1.6}
.inspector{position:sticky;top:0;align-self:start;min-height:100dvh;background:#fff;border-left:1px solid #e5eaf0;padding:32px 23px 22px}.inspector-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.inspector-heading h2{font-size:13px;font-weight:600}.badge{font-size:9px;border-radius:5px;padding:4px 7px;color:#8d98a9;background:#f2f4f7}.badge.marked{color:#36856d;background:#ecf7f2}.selection-summary{display:flex;gap:12px;align-items:center;margin-top:31px}.tooth-number{display:flex;align-items:center;justify-content:center;width:46px;height:49px;background:linear-gradient(150deg,#edf6ff,#e2efff);border:1px solid #d5e7fc;color:#2a86de;border-radius:12px;font-size:21px;font-weight:550;letter-spacing:-1px;flex-shrink:0}.selection-summary h3{font-size:14px;letter-spacing:-.3px;font-weight:600}.selection-summary p{font-size:10px;color:#96a0b0;margin-top:5px}.fdi-detail{font-size:10px;color:#9ba5b4;margin:12px 0 26px}.fdi-detail span{margin:0 6px}fieldset{border:0;padding:0;margin:0 0 24px;min-width:0}legend,.note-label{font-size:11px;font-weight:600;color:#59677d;margin-bottom:10px;display:block}.status-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.status-option{display:flex;align-items:center;gap:6px;padding:10px 8px;border:1px solid #e3e8ee;border-radius:7px;font-size:10px;color:#7c8798;cursor:pointer;background:#fff;position:relative;min-height:36px}.status-option:has(input:checked){border-color:#63a7f0;background:#edf6ff;color:#286cbe;box-shadow:0 0 0 1px #c9e2ff inset}.status-option input{position:absolute;opacity:0;width:100%;height:100%;inset:0;margin:0;cursor:pointer}.status-option:has(input:focus-visible){outline:3px solid #7bb8ff;outline-offset:2px}.status-option .swatch{width:8px;height:8px;border-radius:50%;background:var(--swatch);box-shadow:inset 0 0 0 1px #00000009;flex-shrink:0}.modifier-fieldset{margin-top:25px}.modifier{display:flex;align-items:center;justify-content:space-between;min-height:38px;position:relative;cursor:pointer}.modifier>span:first-child{display:flex;gap:9px;align-items:center;font-size:11px;color:#7b889a}.modifier svg{width:16px;height:16px;color:#9ba7b9}.modifier input{opacity:0;position:absolute;right:0;width:34px;height:22px;cursor:pointer}.switch{width:28px;height:17px;border-radius:12px;background:#e5e9ef;position:relative;pointer-events:none;transition:background .2s}.switch:after{content:"";position:absolute;width:13px;height:13px;border-radius:50%;background:#fff;top:2px;left:2px;box-shadow:0 1px 3px #23405b24;transition:transform .2s}.modifier input:checked+.switch{background:var(--blue)}.modifier input:checked+.switch:after{transform:translateX(11px)}.modifier input:focus-visible+.switch{outline:3px solid #7bb8ff;outline-offset:3px}.note-label{display:flex;justify-content:space-between}.note-label span{font-size:10px;font-weight:400;color:#a3acba}textarea{resize:vertical;display:block;width:100%;min-height:94px;max-height:240px;border:1px solid #e1e7ef;border-radius:8px;background:#fcfdff;padding:11px;font-size:11px;line-height:1.6;color:#52647b}textarea::placeholder{color:#a4afbe}.save-button{width:100%;margin-top:18px;min-height:38px}.remove-marking{display:block;margin:9px auto 0;font-size:10px;color:#a17479}.inspector-tip{border-top:1px solid #edf0f5;padding-top:19px;margin-top:25px;display:flex;gap:8px;color:#9ba6b7;font-size:10px;line-height:1.65}.inspector-tip svg{width:14px;height:14px;margin-top:2px}.inline-button{display:inline;padding:0;background:none;color:#738cac;font-size:inherit;text-decoration:underline;text-underline-offset:2px}.mobile-chart-switch{display:none}.preview-banner{background:#e9f3ff;border:1px solid #cee4ff;color:#41709f;display:flex;justify-content:space-between;gap:14px;padding:13px 15px;border-radius:10px;margin-bottom:16px;font-size:11px}.preview-banner>div{display:flex;align-items:center;gap:9px}.preview-banner small{display:block;margin-top:4px;font-size:10px}.preview-banner .button{font-size:10px;padding:7px 9px}
.dialog{padding:0;border:1px solid #e5e9f0;border-radius:17px;box-shadow:0 25px 90px #14325a2c;width:min(510px,calc(100vw - 30px));max-height:85dvh;color:#34445a;background:#fff}.dialog::backdrop{background:#25364e35;backdrop-filter:blur(6px)}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:20px 22px 12px}.dialog-header h2{font-size:18px;letter-spacing:-.5px;overflow-wrap:anywhere}.dialog-body{padding:8px 22px 22px;color:#7c899c;font-size:13px;line-height:1.6;overflow-y:auto;max-height:60dvh}.dialog-actions{display:flex;gap:8px;justify-content:flex-end;background:#fafbfd;border-top:1px solid var(--line);padding:15px 22px}.dialog-actions .danger{background:#d45d62;border-color:#d45d62;color:white}.dialog input[type=text]{display:block;width:100%;border:1px solid #d9e2ed;border-radius:8px;padding:12px;margin-top:8px;color:#34445a}.dialog-error{color:#c3484e;font-size:12px;margin-top:9px}.history-list{display:flex;flex-direction:column;gap:8px;margin-top:15px}.history-row{border:1px solid #e3e9f1;background:#fff;padding:13px;border-radius:9px;text-align:left;display:flex;gap:10px;align-items:center}.history-row[aria-pressed=true]{background:#eff6ff;border-color:#88b8ee}.history-row>span{flex:1}.history-row strong{display:block;font-size:12px;font-weight:550;color:#52657d}.history-row small{display:block;margin-top:4px;font-size:10px;color:#91a0b4}.history-row .history-count{font-size:10px;color:#8596ac;flex:none}.empty-history{padding:24px 12px;text-align:center}.empty-history>svg{width:34px;height:34px;color:#aec5e1;margin-bottom:10px}.empty-history strong{display:block;color:#637992;font-size:15px;margin-bottom:5px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;background:#fffefc;border:1px solid #dfe7f0;border-radius:11px;padding:13px 19px;box-shadow:0 8px 32px #203c5624;z-index:10;font-size:12px;color:#59748d;max-width:calc(100vw - 30px)}.toast svg{color:#438f79}.noscript{position:fixed;inset:0;background:#f5f7fa;display:grid;place-items:center;padding:30px}
@media(min-width:1600px){:root{--sidebar:240px;--inspector:330px}.workspace{padding-left:45px;padding-right:45px}.inspector{padding-left:30px;padding-right:30px}.chart-stage svg{max-height:700px}.chart-list strong{max-width:154px}}
@media(max-width:1250px){:root{--sidebar:185px;--inspector:270px}.workspace{padding:28px 20px 18px}.inspector{padding:29px 18px 18px}.brand{font-size:15px;padding:0 2px}.brand img{width:34px;height:34px}.sidebar{padding-left:12px;padding-right:12px}.chart-list strong{max-width:104px}.chart-card-header{padding:20px 18px 5px}.chart-card-header p{max-width:145px;line-height:1.5}.header-actions .button{padding:8px}.chart-stage{padding:0 3px}.chart-stage svg{min-height:340px}.chart-legend{gap:10px;padding-left:14px;padding-right:14px}.chart-card-footer{font-size:8px;padding:13px}.workspace-footer{font-size:8px}.status-option{padding:9px 6px;font-size:9px}.header-actions{gap:5px}h1{font-size:25px}}
@media(max-width:1050px){:root{--sidebar:0px;--inspector:280px}.sidebar{display:none}.mobile-chart-switch{display:flex;gap:8px;align-items:center;margin-bottom:18px;font-size:11px;color:#8090a6}.mobile-chart-switch select{min-width:0;max-width:240px;background:#fff;border:1px solid #dfe6ef;border-radius:7px;padding:7px 24px 7px 8px;color:#596c83}.workspace{padding:25px 24px}.workspace-header{margin-bottom:15px}.chart-stage svg{max-height:none;min-height:0}.chart-card-footer{font-size:9px;flex-wrap:wrap}.workspace-footer>span{max-width:240px;line-height:1.6}.preview-banner{flex-direction:column}.header-actions .button{font-size:10px}}
@media(max-width:720px){.app-shell{grid-template-columns:minmax(0,1fr)}.workspace{padding:23px 16px 8px}.workspace-header{gap:12px}.header-title{min-width:0}h1{font-size:25px}.header-actions{align-self:center}.header-actions .button{padding:9px}.header-actions .button span{display:none}.header-actions .button svg{width:17px;height:17px}.eyebrow{font-size:8px}.save-status{font-size:9px}.chart-card-header{padding:19px 17px 4px}.chart-card-header h2{font-size:13px}.chart-card-header p{max-width:165px;font-size:9px}.mode-control button{font-size:9px;padding:7px 8px}.chart-stage{padding:0 4px}.chart-stage svg{min-height:0;max-height:550px}.chart-legend{padding:4px 18px 17px;font-size:8px;gap:9px 12px}.chart-card-footer{font-size:8px;padding:12px 16px}.workspace-footer{font-size:8px;margin:13px 0}.workspace-footer>span{max-width:235px}.inspector{position:relative;min-height:0;padding:24px;border:1px solid #e5eaf0;border-radius:14px;margin:10px 16px 25px}.selection-summary{margin-top:22px}.status-grid{grid-template-columns:repeat(3,1fr)}.status-option{padding:12px 8px;font-size:10px}.modifier{min-height:43px}.modifier-fieldset{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.modifier-fieldset legend{margin-bottom:7px}.fdi-detail{margin-bottom:22px}.inspector-tip{margin-top:20px}.modifier>span:first-child{font-size:11px}.modifier svg{display:none}.save-button{min-height:43px}.tooth-number{height:43px;width:43px}.chart-item .tooth-shape{stroke-width:1.6}.diagram-fdi{font-size:13px}.jaw-title{font-size:13px}.jaw-subtitle{font-size:11px}.side-marker{font-size:13px}.toast{bottom:15px;font-size:11px}.mobile-chart-switch select{flex:1;max-width:none}.preview-banner>div:last-child{flex-wrap:wrap}.dialog-actions{flex-wrap:wrap}.inspector-heading h2{font-size:14px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}

.item-navigation{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-top:15px;padding:2px 0;border-bottom:1px solid #edf1f6}.item-navigation span{font-size:10px;color:#9ba7b8}.item-navigation .icon-button{width:32px;height:28px}.fdi-detail{margin-top:10px;margin-bottom:22px}.back-to-chart{display:none}
@media(max-width:720px){.item-navigation .icon-button{width:44px;height:40px}.item-navigation{margin-top:12px}.back-to-chart{display:flex;gap:5px;align-items:center;justify-content:center;margin:14px auto 0;font-size:11px}.back-to-chart svg{width:14px;height:14px}.inspector{scroll-margin-top:15px}.diagram-fdi{font-size:17px}}

.chart-title-row{display:flex;align-items:center;gap:9px;min-width:0}.chart-title-row h1{min-width:0}.rename-chart{flex-shrink:0}.rename-chart svg{width:17px;height:17px}.chart-legend b{box-shadow:inset 0 0 0 1px #8392a326}

.auth-form{padding:8px 24px 24px}.auth-form label{display:block;margin:0 0 16px;font-size:12px;color:#65758b}.auth-form input{display:block;width:100%;margin-top:7px;padding:12px;border:1px solid #d9e2ed;border-radius:8px;background:#fcfdff;color:#35465e}.auth-form>.button{width:100%;min-height:42px;margin-top:8px}.auth-links{display:flex;flex-wrap:wrap;gap:13px;justify-content:center;margin-top:20px}.auth-links button{background:none;padding:0;font-size:11px;color:#6887ae}.auth-message{background:#edf6ff;color:#406995;font-size:12px;line-height:1.6;padding:12px;border-radius:8px;margin-bottom:14px}.auth-message.error{background:#fff0ee;color:#a4504b}.auth-hint{font-size:11px;color:#8d9aae;margin:-8px 0 15px}.cloud-notice{padding:12px 15px;border:1px solid #dae6f4;border-radius:9px;background:#edf5ff;font-size:12px;line-height:1.5;color:#527498;margin-bottom:15px}.cloud-notice.error{background:#fff3ed;border-color:#f1dccc;color:#9a6040}.header-actions{flex-wrap:wrap;justify-content:flex-end;max-width:290px}.share-section{padding:15px 0;border-bottom:1px solid #e6edf5}.share-section:last-child{border:0}.share-section h3{font-size:13px;color:#50647d;margin-bottom:10px}.share-row{display:flex;align-items:center;gap:9px;margin:10px 0}.share-row .share-email{flex:1;min-width:0;overflow-wrap:anywhere;font-size:12px}.share-row select,.share-section select{padding:8px;border:1px solid #dce5ef;border-radius:7px;background:white;font-size:12px;color:#58728d}.share-add input{flex:1;min-width:0;padding:9px;border:1px solid #dce5ef;border-radius:7px}.share-row small{display:block;color:#92a0b3;font-size:10px}.share-help{font-size:11px;color:#8b9aaf;line-height:1.6;margin-top:8px}.share-url{width:100%;padding:9px;border:1px solid #dce5ef;border-radius:7px;background:#f5f8fc;color:#7188a3;font-size:11px}.share-remove{background:transparent;color:#b27676;padding:8px;font-size:14px}.share-owner{font-size:11px;color:#8da0b7}.auth-dialog{max-width:410px}.read-only .inspector{opacity:.8}@media(max-width:720px){.header-actions{max-width:150px}.header-actions [data-account-button]{font-size:10px}.header-actions .button.primary span{display:inline}.share-add{flex-wrap:wrap}.share-add input{flex-basis:100%}}

.header-actions [data-account-button]{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:14px}.account-email{overflow-wrap:anywhere;font-weight:600}.account-email-field{display:grid;gap:8px;margin:16px 0}.account-email-field input{width:100%;min-width:0;font-size:16px}

.access-gate{min-height:100dvh;display:grid;place-items:center;padding:28px;background:#f7f9fc}.access-card{width:min(100%,480px);text-align:center}.access-lock{width:76px;height:76px;margin:0 auto 28px;border-radius:24px;background:#e8effa;color:#5a7194;display:grid;place-items:center}.access-lock svg{width:46px;height:46px}.access-card h1{font-size:28px;letter-spacing:-.6px;margin:0 0 14px}.access-card p{font-size:16px;line-height:1.6;color:#6b7689}.access-card .access-email{margin-top:16px;overflow-wrap:anywhere;color:#35435b}.access-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:26px}.access-actions .button{font-size:15px;padding:13px 20px}.access-card .access-message{font-size:14px;margin-top:22px}.access-request-section{margin-bottom:24px}.access-request-section h3{margin-bottom:12px}

.chart-list-row{display:flex;align-items:center;gap:2px;min-width:0}.chart-list-row>button:first-child{flex:1;min-width:0}.chart-list .delete-chart{width:30px;flex:0 0 30px;padding:7px;align-self:center;color:#8994a6}.chart-list .delete-chart:hover{color:#c54141;background:#ffebeb}.chart-list-row strong{max-width:105px}.access-spinner{width:36px;height:36px;margin:0 auto 28px;border:3px solid #dfe8f4;border-top-color:#087af5;border-radius:50%;animation:chart-spin .8s linear infinite}@keyframes chart-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.access-spinner{animation:none;border-top-color:#087af5}}

.chart-stage{max-width:1040px;padding:0 4px}.chart-stage svg{max-height:none;min-height:0}.tooth-visual{transform-box:fill-box;transform-origin:center}.is-wobbly{animation:tooth-wobble 2.6s ease-in-out infinite}.pain-halo{animation:tooth-sensitive 2s ease-in-out infinite;pointer-events:none}.filling-mark{filter:drop-shadow(0 1px 1px #344c6638)}@keyframes tooth-wobble{0%,65%,100%{transform:rotate(0)}72%{transform:rotate(-5deg)}80%{transform:rotate(5deg)}88%{transform:rotate(-3deg)}94%{transform:rotate(2deg)}}@keyframes tooth-sensitive{0%,100%{opacity:.3}50%{opacity:.65}}.modifier{border-radius:8px;padding:0 7px;margin:3px -7px;transition:background .18s}.modifier:has(input:checked){background:#edf5ff}.modifier:has(input:checked)>span:first-child{color:#246fbd;font-weight:600}.modifier:has(input[name=painful]:checked){background:#fff0f1}.modifier:has(input[name=painful]:checked)>span:first-child{color:#bc4b59}.modifier:has(input[name=painful]:checked) .switch{background:#e56c76}@media(prefers-reduced-motion:reduce){.is-wobbly,.pain-halo{animation:none}.pain-halo{opacity:.45}}

/* Storage state stays readable and distinct in the sidebar. */
.local-storage.storage-local{color:#b42318;background:#fff1f0;border:1px solid #f8c9c5;border-radius:14px;padding:14px;align-items:flex-start}
.local-storage.storage-cloud{color:#17734c;background:#eaf8f0;border:1px solid #bce3cc;border-radius:14px;padding:14px;align-items:flex-start}
.local-storage.storage-local small,.local-storage.storage-cloud small{color:inherit;opacity:1}
.domain-rules{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}
.domain-rules h4{margin:0 0 12px}.domain-rule input{flex:1;min-width:0}.domain-rule select{flex:0 0 110px}.domain-rule{margin-bottom:10px}
@media(max-width:560px){.domain-rule{flex-wrap:wrap}.domain-rule input{flex-basis:100%}.share-row select[aria-label="Link access role"]{max-width:100%}}

.general-access-row{flex-wrap:wrap}.general-access-row select{min-width:0;max-width:100%}
@media(max-width:560px){.general-access-row select{flex:1 1 100%;width:100%}}

.storage-choices{display:grid;gap:12px}.storage-choice{background:#f8faff;border:1px solid #dfe7f0;border-radius:12px;padding:16px;text-align:left}.storage-choice:hover{border-color:#087af5}.storage-choice strong{display:block;font-size:15px}.storage-choice p{font-size:12px;line-height:1.5;margin:8px 0}.storage-choice small{font-size:11px;color:#537392}.storage-security{display:inline-block;font-size:10px;padding:3px 7px;border-radius:5px;margin-top:7px}.storage-security.browser{background:#ffebe8;color:#b42318}.storage-security.file{background:#edf4ff;color:#245ca3}.storage-security.cloud{background:#eaf8f0;color:#17734c}.local-file-status{padding:9px;border-radius:8px;background:#edf7f0;color:#267347;font-size:11px;overflow-wrap:anywhere;margin-bottom:16px}.local-file-status.file-error{background:#fff0ed;color:#b42318}
.exit-fullscreen{position:fixed;top:12px;right:16px;z-index:20;font-size:11px;box-shadow:0 2px 8px #0001}.chart-fullscreen .app-shell{grid-template-columns:minmax(0,1fr) minmax(240px,300px);height:100dvh;overflow:hidden}.chart-fullscreen .sidebar,.chart-fullscreen .header-actions,.chart-fullscreen .eyebrow,.chart-fullscreen .save-status,.chart-fullscreen .rename-chart,.chart-fullscreen .mobile-chart-switch,.chart-fullscreen .chart-card-header,.chart-fullscreen .chart-legend,.chart-fullscreen .chart-card-footer,.chart-fullscreen .workspace-footer{display:none}.chart-fullscreen .workspace{padding:20px;min-width:0;min-height:0;display:flex;flex-direction:column;height:100dvh}.chart-fullscreen .workspace-header{margin:0 0 12px;flex:none}.chart-fullscreen h1{font-size:26px}.chart-fullscreen .chart-card{flex:1;min-height:0;display:flex;flex-direction:column}.chart-fullscreen .chart-stage{flex:1;min-height:0;padding:4px;display:flex;align-items:center;justify-content:center}.chart-fullscreen .chart-stage svg{width:100%;height:100%;max-height:100%;min-height:0}.chart-fullscreen .inspector{display:block;position:relative;margin:0;border-radius:0;min-height:0;height:100dvh;overflow-y:auto;padding:60px 20px 20px}.chart-fullscreen .back-to-chart{display:none}
@media(max-width:600px){.chart-fullscreen .app-shell{grid-template-columns:minmax(200px,1fr) 200px;overflow:auto}.chart-fullscreen .workspace{padding:12px}.chart-fullscreen .inspector{padding:58px 10px 12px}.chart-fullscreen .status-grid{grid-template-columns:1fr 1fr}.chart-fullscreen .modifier-fieldset{display:block}}

.dialog-actions{flex-wrap:wrap}
.account-email-field input{padding:12px;border:1px solid #d9e2ed;border-radius:8px;background:#fcfdff;color:#35465e}

/* Library landing page: lightweight previews, separate from chart access. */
.library-home{max-width:1256px;margin:0 auto;padding:32px 40px 26px;min-height:100dvh}.library-header,.library-header-actions,.library-intro,.library-toolbar,.library-footer{display:flex;align-items:center;justify-content:space-between;gap:18px}.library-header{padding-bottom:38px;border-bottom:1px solid #e2e7ef}.library-header .brand{padding:0}.library-header-actions{justify-content:flex-end}.library-header-actions [data-account-button]{max-width:280px;overflow:hidden;text-overflow:ellipsis}.library-intro{padding:44px 0 30px}.library-intro h1{font-size:38px;letter-spacing:-1.5px;margin:8px 0 12px}.library-intro p{color:#7b889b;font-size:15px}.library-intro>.button{padding:13px 20px;font-size:14px;gap:8px}.library-toolbar{margin:0 0 20px}.library-toolbar>span{font-size:12px;color:#8390a3;margin-left:auto}.library-search{width:min(360px,45%)}.library-search input{width:100%;padding:12px 16px;background:#fff;border:1px solid #dfe5ef;border-radius:11px;font-size:14px}.library-status{color:#71829b;font-size:13px;margin:10px 0}.library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:start}.library-card{background:#fff;border:1px solid #e0e6ef;border-radius:17px;overflow:hidden;box-shadow:0 4px 16px #233c5e04;transition:box-shadow .2s,transform .2s}.library-card:hover{box-shadow:0 10px 28px #233c5e12;transform:translateY(-2px)}.library-card-link{display:block;text-decoration:none;color:inherit}.library-preview{position:relative;background:linear-gradient(145deg,#fcfdff,#eff4fa);border-bottom:1px solid #eaf0f6;padding:14px 20px}.library-preview>svg{display:block;width:100%;height:192px;filter:drop-shadow(0 2px 1px #4e66801c)}.library-shared{position:absolute;bottom:13px;right:15px;color:#5c7897;background:#fff;border:1px solid #e0e8f2;display:grid;place-items:center;width:32px;height:32px;border-radius:10px}.library-shared .icon{width:18px;height:18px}.library-card-info{padding:20px 21px 12px}.library-card-info h2{font-size:17px;letter-spacing:-.4px;margin:0 0 11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-owner{font-size:12px;color:#64758b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-edited{font-size:11px;line-height:1.6;color:#8a97a9;margin-top:7px}.library-card-foot{margin:0 20px;padding:10px 0 14px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #edf0f5}.library-storage{color:#69819a;font-size:11px}.library-delete{color:#8b99aa;width:30px;height:30px}.library-delete:hover{color:#bf413e;background:#fff0ee}.library-empty{grid-column:1/-1;padding:64px 20px;text-align:center;color:#8592a6;background:#eef2f8;border:1px dashed #d8e1ed;border-radius:16px}.library-footer{padding-top:40px;font-size:12px;color:#8290a3;line-height:1.6}.library-footer a{color:#6681a0;text-decoration:none}.welcome-signin{display:block;width:100%;padding:15px;margin-top:17px;color:#087af5;border-radius:9px;background:#edf5ff;font-weight:600}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:950px){.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.library-home{padding:24px}.library-header{padding-bottom:25px}.library-intro{padding-top:30px}}
@media(max-width:560px){.library-home{padding:20px 16px}.library-header{align-items:flex-start;gap:10px}.library-header .brand small{font-size:10px}.library-header .brand img{width:34px;height:34px}.library-header .brand{font-size:15px;gap:8px}.library-header-actions{gap:8px;flex-wrap:wrap;max-width:155px}.library-header-actions .button{font-size:11px;padding:8px;max-width:150px}.library-intro h1{font-size:30px}.library-intro p{font-size:12px;max-width:200px}.library-intro>.button{padding:11px;font-size:12px;white-space:nowrap}.library-toolbar{flex-wrap:wrap;gap:12px}.library-search{width:100%}.library-toolbar>span{margin-left:0}.library-grid{grid-template-columns:1fr;gap:16px}.library-preview>svg{height:190px}.library-footer{align-items:flex-start}.library-footer span{max-width:240px}}

.tooth-tooltip{position:fixed;z-index:30;width:max-content;max-width:min(310px,calc(100vw - 24px));padding:15px 17px;border:1px solid #dce5f0;border-radius:13px;background:#fffffffa;box-shadow:0 10px 34px #233c5e24;pointer-events:none;color:#34465f;font-size:13px;line-height:1.5}.tooth-tooltip strong{display:block;font-size:14px;margin-bottom:3px}.tooth-tooltip span{display:block;color:#8390a3;font-size:11px;margin-bottom:8px}.tooth-tooltip-note{border-top:1px solid #e9eef5;padding-top:8px;margin-top:8px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:160px;overflow:hidden}

/* Guided first visit: real chart controls remain usable in practice steps. */
.chart-tour{position:fixed;inset:0;z-index:1000;pointer-events:none}.chart-tour[hidden]{display:none}.tour-shade{position:absolute;inset:0;background:#172c4a80}.tour-highlight{position:fixed;border:3px solid #1687ff;border-radius:12px;box-shadow:0 0 0 9999px #172c4a80;pointer-events:none}.tour-card{position:fixed;width:350px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;padding:26px;background:white;color:#293b54;border:1px solid #dce9f9;border-radius:18px;box-shadow:0 18px 60px #172c4a40;pointer-events:auto;outline:none}.tour-progress{font-size:10px;font-weight:700;letter-spacing:1.5px;color:#1875d3;margin:0 28px 13px 0}.tour-card h2{font-size:22px;line-height:1.2;margin:0 0 12px}.tour-card #tour-description{font-size:14px;line-height:1.6;color:#50637e;margin:0}.tour-hint{font-size:11px;line-height:1.5;color:#75859b;margin:14px 0 20px}.tour-close{position:absolute;right:10px;top:8px;width:36px;height:36px;border-radius:8px;background:transparent;color:#71839b;font-size:26px}.tour-close:hover{background:#edf5ff}.tour-actions{display:flex;justify-content:flex-end;gap:10px}.tour-actions .button{font-size:12px;min-height:40px}.tour-actions [data-tour-back]{margin-right:auto}.tour-card button:focus-visible{outline:3px solid #70b4ff;outline-offset:3px}.owner-request{padding:14px 0;border-bottom:1px solid #e4ebf3}.owner-request strong{display:block;overflow-wrap:anywhere;font-size:14px}.owner-request .share-row{flex-wrap:wrap}.owner-request-status{font-size:12px;color:#397758;line-height:1.5}.owner-request-status.error{color:#b64242}
@media(max-width:760px){.tour-card{width:350px;padding:20px}.tour-card h2{font-size:19px}.tour-card #tour-description{font-size:13px}.tour-hint{margin:10px 0 14px}.tour-progress{font-size:9px;margin-bottom:10px}}

.button.primary.save-button:disabled{background:#e3e8ef;color:#7c899c;border-color:#e3e8ef;box-shadow:none;opacity:1;cursor:default;transform:none}

.import-chart-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:center;border:1px solid #e0e6ef;border-radius:12px;overflow:hidden;margin-top:16px}.import-chart-row .library-preview{padding:8px;border:0}.import-chart-row .library-preview>svg{height:110px}.import-chart-details{padding:12px 14px 12px 0;min-width:0}.import-chart-details label{color:#34445a;font-weight:600}.import-chart-details p{margin-top:8px;font-size:12px}@media(max-width:480px){.import-chart-row{grid-template-columns:1fr;gap:0}.import-chart-details{padding:12px}.import-chart-row .library-preview>svg{height:135px}}

.dialog-actions:has([data-result="signin"]){flex-wrap:wrap}.dialog-actions [data-result="signin"]{flex-basis:100%;padding:15px;color:#087af5;background:#edf5ff;border:0;font-weight:600}
.dialog[open]{display:flex;flex-direction:column;overflow:hidden}.dialog-header,.dialog-actions{flex-shrink:0}.dialog-body{min-height:0}.dialog-actions [data-result="signin"]{order:1}

.tour-intro-opening{font-size:15px;line-height:1.8;color:#52657d}.tour-intro-more{margin-top:20px}.tour-intro-more summary{cursor:pointer;color:#087af5;font-weight:600}.tour-intro-more p{margin-top:14px}

#dialog-title:has(.dialog-brand-icon){display:flex;align-items:center;gap:10px}.dialog-brand-icon{width:40px;height:40px;flex-shrink:0;object-fit:contain}.tour-intro-comic{margin:0 0 20px;border:1px solid #e3eaf4;border-radius:12px;overflow:hidden;background:#f5f9ff}.tour-intro-comic>img{display:block;width:100%;height:auto}.tour-intro-comic figcaption{display:grid;grid-template-columns:1fr 1fr;text-align:center;padding:8px 0;font-size:12px;font-weight:600;color:#526b89;border-top:1px solid #e3eaf4}

.template-gallery{background:#edf1f7;border:1px solid #e3e9f1;border-radius:16px;padding:22px 24px 24px;margin:0 0 30px}.template-gallery h2{font-size:15px;font-weight:600;letter-spacing:-.2px;margin-bottom:18px}.template-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.template-card{display:flex;flex-direction:column;min-width:0;padding:0;text-align:left;background:transparent;border-radius:10px}.template-preview{display:block;width:100%;background:#fff;border:1px solid #dce3ed;border-radius:10px;overflow:hidden;transition:border-color .15s,box-shadow .15s}.template-preview>svg{display:block;width:100%;height:148px;padding:8px}.template-card:hover .template-preview,.template-card:focus-visible .template-preview{border-color:var(--blue);box-shadow:0 3px 12px #087af514}.template-name{font-size:14px;font-weight:600;margin:12px 2px 5px}.template-description{font-size:11px;line-height:1.5;color:#6d7b91;margin:0 2px}
@media(max-width:760px){.template-gallery{padding:18px;margin-bottom:24px}.template-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px}.template-preview>svg{height:126px}.template-description{font-size:10px}}
