@import url('./tokens.css');
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.7 var(--font-ui)}button,input,textarea,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:4px}button{border:0}a{color:inherit;text-decoration:none}.wrap{width:min(var(--content-width),calc(100% - 96px));margin:auto}.demo-bar{background:#EDEFE5;color:#57604D;font-size:12px;text-align:center;padding:6px 18px;display:flex;gap:20px;justify-content:center;align-items:center}.demo-bar button{background:none;text-decoration:underline;font-size:12px;padding:0 3px}.header{height:82px;border-bottom:1px solid var(--border);background:rgba(255,254,251,.92)}.header .wrap{display:flex;align-items:center;justify-content:space-between;height:100%;gap:32px}.brand{display:flex;align-items:center;gap:11px;font-family:Georgia,var(--font-display);font-size:22px;white-space:nowrap}.brand svg{width:27px;height:36px}.nav{display:flex;gap:36px;height:100%;align-items:center}.nav button{height:100%;background:none;font-size:14px;position:relative;white-space:nowrap}.nav .active{color:var(--primary)}.nav .active:after{position:absolute;content:'';height:2px;background:var(--primary);left:4px;right:4px;bottom:0}.account{display:flex;align-items:center;gap:20px}.language{background:none;border:0;color:var(--ink-secondary);font-size:13px;padding:7px 0;max-width:102px}.avatar{width:34px;height:34px;border:1px solid #D7DCC9;border-radius:50%;background:#E8ECDF;color:#586743;display:grid;place-items:center;font-family:Georgia;font-size:17px}.hero{display:grid;grid-template-columns:1.13fr 1.03fr .72fr;align-items:center;min-height:455px;gap:24px;border-bottom:1px solid var(--border)}.eyebrow{font-size:11px;letter-spacing:.16em;color:var(--primary);text-transform:uppercase;margin:0 0 18px}.hero h1{font-family:var(--font-display);font-size:42px;letter-spacing:.08em;font-weight:400;line-height:1.5;margin:0 0 20px}.hero p{font-size:14px;color:var(--ink-secondary);max-width:366px;margin-bottom:28px;line-height:1.9}.hero-art{height:390px;align-self:end;position:relative}.hero-art svg{height:100%;width:100%}.hero-note{border-left:1px solid var(--border);padding:8px 0 8px 28px;color:var(--ink-secondary);font-family:var(--font-display);font-size:18px;line-height:1.9}.hero-note small{display:block;font-family:var(--font-ui);font-size:11px;letter-spacing:.08em;margin-top:20px;color:var(--ink-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border-radius:var(--radius-sm);padding:10px 23px;font-size:13px;line-height:1.5;border:1px solid var(--border);background:var(--surface);transition:background .18s}.btn:hover{background:#F0F2E8}.btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn.primary:hover{background:var(--primary-hover)}.btn.quiet{background:transparent}.btn.full{width:100%}.text-btn{background:none;padding:5px 0;font-size:12px;color:var(--primary)}.arrow{margin-left:10px}.main-grid{display:grid;grid-template-columns:minmax(0,1fr) 288px;gap:24px;padding:38px 0 30px}.card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.tree-panel{padding:26px 26px 20px;min-width:0}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.section-head h2,.side-card h2,.recent h2{font:400 23px/1.5 var(--font-display);margin:0 0 5px}.sub{font-size:12px;color:var(--ink-secondary);margin:0}.section-head select{background:var(--surface);border:1px solid var(--border);border-radius:7px;padding:7px 10px;font-size:12px;max-width:130px}.tree-body{display:grid;grid-template-columns:190px minmax(0,1fr);gap:6px;margin-top:28px;align-items:center}.dimension-list{display:flex;flex-direction:column;gap:8px}.dimension{display:flex;text-align:left;gap:10px;align-items:center;border:1px solid var(--border);border-radius:8px;background:transparent;padding:11px 10px;min-height:62px}.dimension:hover,.dimension.selected{background:#F0F2E8;border-color:#B0B99E}.dim-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#EDEFDF;color:var(--primary);font:18px Georgia}.dimension strong{display:block;font-size:12px;font-weight:500}.dimension small{display:block;color:var(--ink-secondary);font-size:10px;margin-top:1px}.dim-count{margin-left:auto;font:12px Georgia;color:var(--primary)}.tree-canvas{min-width:0;position:relative}.tree-art{position:relative;min-width:0}.tree-canvas svg{width:100%;height:auto;display:block;overflow:visible}.tree-art .tree-spirit-stage{position:absolute;z-index:3;left:50%;bottom:18px;width:100px;height:86px;padding:0;border:0;background:transparent;transform:translateX(-50%);cursor:pointer}.tree-spirit-stage .spirit-halo{inset:8% 4% 0}.tree-spirit-stage .spirit-orbit{right:0;top:4%;font-size:14px}.tree-spirit-stage .spirit-sleep{right:0;top:0;font-size:9px;letter-spacing:1px}.tree-spirit-stage:hover img{filter:drop-shadow(0 7px 10px #9ba96d22) brightness(1.03)}.tree-node{cursor:pointer;outline:none}.tree-node circle{transition:fill .18s}.tree-node:hover circle{fill:#E8EBD9;fill-opacity:.55}.tree-node:focus-visible circle{stroke:var(--focus);stroke-width:2;fill:#E8EBD9}.branch{transition:opacity .22s}.tree-summary{display:flex;gap:28px;margin-top:5px;padding-top:19px;border-top:1px solid var(--border);align-items:center}.stat{display:flex;align-items:baseline;gap:6px}.stat strong{font:26px/1.2 Georgia;color:#596448}.stat span{font-size:11px;color:var(--ink-secondary)}.tree-summary .text-btn{margin-left:auto;white-space:nowrap}.legend{display:flex;justify-content:center;gap:16px;color:var(--ink-secondary);font-size:10px;margin-top:8px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#788458;margin-right:5px}.dot.pending{background:#BCC5A5;border:1px dashed #6A794F}.side{display:flex;flex-direction:column;gap:20px}.side-card{padding:23px 23px}.side-card h2{font-size:20px;margin-bottom:15px}.insight-item{border-bottom:1px solid #E9E9E1;padding:14px 0;display:block;width:100%;text-align:left;background:none}.insight-item:first-of-type{padding-top:0}.insight-item:last-of-type{border-bottom:0}.insight-item p{font-size:12px;line-height:1.85;margin:0 0 7px;display:flex;gap:8px}.insight-item .dot{flex-shrink:0;margin-top:7px}.insight-item small{font-size:10px;color:var(--ink-secondary);margin-left:16px}.state-pill{font-size:10px;padding:3px 7px;background:var(--primary-soft);border-radius:4px;color:#596448;white-space:nowrap}.side-card .desc{font-size:12px;color:var(--ink-secondary);line-height:1.9;margin:0 0 20px}.auth-line{display:flex;justify-content:space-between;gap:15px;font-size:10px;padding-top:15px;border-top:1px solid var(--border);margin-top:20px;color:var(--ink-secondary)}.review{background:#F0F2E9}.review .eyebrow{margin:0 0 10px;font-size:10px}.review h2{font-size:18px;margin-bottom:8px}.review p{font-size:11px;color:var(--ink-secondary);margin:0 0 8px}.recent{padding:25px 28px;margin-bottom:44px}.recent .section-head{align-items:center}.recent .section-head h2{font-size:21px}.diary-row{display:flex;gap:20px;align-items:center;padding:19px 0;border-bottom:1px solid #E8E8DF}.diary-row:last-child{border-bottom:0;padding-bottom:1px}.date-token{border:1px solid var(--border);width:43px;height:43px;border-radius:50%;display:grid;place-items:center;font:11px Georgia;color:var(--ink-secondary);flex-shrink:0}.diary-content{flex:1;min-width:0;text-align:left;background:none;padding:0}.diary-content strong{font-size:13px;font-weight:500;display:block}.diary-content p{font-size:11px;color:var(--ink-secondary);margin:4px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:700px}.row-actions{display:flex;gap:12px;align-items:center}.row-actions button{background:none;color:var(--ink-secondary);font-size:11px;padding:8px 4px}.footer{border-top:1px solid var(--border);padding:22px 0 28px;color:var(--ink-muted);font-size:10px}.footer .wrap{display:flex;justify-content:space-between;gap:18px}.footer-links{display:flex;gap:25px}.footer button{background:none;padding:0;color:inherit;font-size:inherit}.bottom-nav{display:none}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);padding:11px 22px;color:#fff;background:#465535;border-radius:8px;font-size:13px;z-index:50;max-width:90vw}.overlay{position:fixed;inset:0;background:#27302555;z-index:30;display:flex;justify-content:flex-end;backdrop-filter:blur(3px)}.drawer{width:min(490px,100%);height:100%;overflow-y:auto;background:var(--surface);padding:33px 33px 40px;box-shadow:-8px 0 50px #26302112}.drawer-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;gap:15px}.drawer-header h2{font:24px/1.5 var(--font-display);margin:0}.close{width:36px;height:36px;border:1px solid var(--border);border-radius:50%;background:none;font-size:23px;line-height:1}.drawer p{font-size:13px;color:var(--ink-secondary)}.drawer label{display:block;font-size:13px;margin:19px 0 7px}.drawer textarea,.drawer input,.drawer select{border:1px solid var(--border-strong);border-radius:8px;background:#fffefb;width:100%;padding:11px 12px;font-size:14px;color:var(--ink)}.drawer textarea{min-height:210px;resize:vertical;line-height:1.85}.drawer h3{font-size:13px;font-weight:500;margin:26px 0 9px}.evidence{border-left:2px solid #A9B48E;padding:0 0 0 18px;font-size:14px;line-height:1.9;color:var(--ink)}.evidence-meta{font-size:11px;color:var(--ink-secondary);margin:12px 0 23px}.drawer-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.drawer .hint{font-size:11px;line-height:1.8;margin-top:10px}.check-row{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--border);gap:20px;font-size:13px}.check-row input{width:18px;height:18px;accent-color:var(--primary)}.source-tag{display:inline-block;border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:11px;color:var(--primary);margin-top:10px}.bubble{background:#F0F2E9;border-radius:12px;padding:16px;margin:16px 0}.bubble.user{background:#E5EAD9;margin-left:38px}.list-view{min-width:0;padding:6px 0 0;max-height:300px;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#BCC4AC transparent}.list-node{display:flex;align-items:center;gap:16px;background:none;width:100%;text-align:left;border-bottom:1px solid var(--border);padding:14px 8px}.list-node:last-child{border-bottom:0}.list-node:hover{background:#F3F5ED}.list-node-content{flex:1;min-width:0;overflow-wrap:anywhere}.list-node strong{display:block;font-size:14px;line-height:1.8;font-weight:400}.list-node small{display:block;margin-top:5px;font-size:12px;color:var(--ink-secondary)}.list-node-arrow{flex-shrink:0;color:var(--primary);font-size:14px}.list-view:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.empty{padding:70px 15px;text-align:center;color:var(--ink-secondary);font-size:13px}.empty p{margin:0 0 15px}
@media(min-width:1600px){.hero{min-height:490px}.hero-art{height:420px}}
@media(max-width:1199px){.wrap{width:calc(100% - 64px)}.nav{gap:22px}.main-grid{grid-template-columns:minmax(0,1fr) 260px;gap:20px}.tree-panel{padding:23px 20px}.tree-body{grid-template-columns:164px minmax(0,1fr)}.hero{grid-template-columns:1.1fr 1fr .6fr;gap:12px}.hero h1{font-size:35px}.hero-note{padding-left:18px;font-size:16px}.hero-art{height:360px}.dimension{gap:7px;padding:9px 8px}.dimension strong{font-size:11px}.dim-icon{width:25px;height:25px}.tree-summary{gap:17px}.stat strong{font-size:23px}.side-card{padding:21px 19px}}
@media(max-width:1023px){.main-grid{grid-template-columns:1fr}.side{display:grid;grid-template-columns:1fr 1fr;gap:20px}.review{display:none}.hero{grid-template-columns:1.1fr 1fr;min-height:375px}.hero-note{display:none}.hero-art{height:345px}.nav{gap:15px}.brand{font-size:20px}.header .wrap{gap:20px}.account{gap:10px}.tree-body{grid-template-columns:190px minmax(0,1fr);gap:24px}.tree-canvas{max-width:580px;margin:auto;width:100%}.dimension strong{font-size:12px}.tree-summary{gap:28px}}
@media(max-width:767px){.tree-art .tree-spirit-stage{width:78px;height:67px;bottom:13px}.tree-spirit-stage .spirit-orbit{font-size:11px}}@media(max-width:767px){body{font-size:14px}.wrap{width:calc(100% - 40px)}.demo-bar{font-size:10px;gap:12px;padding:6px 10px}.demo-bar button{font-size:10px;white-space:nowrap}.header{height:66px}.brand{font-size:19px;gap:8px}.brand svg{width:23px;height:29px}.nav{display:none}.account{gap:13px}.avatar{width:30px;height:30px;font-size:15px}.language{font-size:11px;max-width:90px}.hero{grid-template-columns:1fr;position:relative;min-height:350px;padding:35px 0 36px;overflow:hidden}.hero-copy{position:relative;z-index:1;pointer-events:none}.hero-copy button{pointer-events:auto}.eyebrow{font-size:9px;margin-bottom:14px}.hero h1{font-size:31px;letter-spacing:.04em;max-width:280px;margin-bottom:14px}.hero p{font-size:12px;max-width:215px;margin:0 0 21px;line-height:1.9}.hero-art{position:absolute;right:-89px;bottom:1px;height:320px;width:275px;opacity:.42;pointer-events:none}.hero .btn{min-height:43px;padding:10px 21px}.main-grid{padding:24px 0 22px;gap:18px}.tree-panel{padding:20px 15px 18px}.section-head{gap:10px}.section-head h2{font-size:22px}.section-head .sub{font-size:10px}.section-head select{font-size:11px;padding:6px;max-width:95px}.tree-body{grid-template-columns:1fr;margin-top:20px;gap:0}.dimension-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.dimension{min-height:52px;padding:8px;gap:7px}.dimension strong{font-size:11px}.dimension small{display:none}.dim-icon{width:24px;height:24px;font-size:16px}.dim-count{font-size:11px}.tree-canvas{margin:9px -8px 0;width:calc(100% + 16px);max-width:none}.tree-summary{gap:17px;flex-wrap:wrap;row-gap:10px;padding-top:15px;margin-top:0}.stat strong{font-size:24px}.stat span{font-size:10px}.tree-summary .text-btn{font-size:10px}.legend{font-size:9px;gap:12px;margin-top:0}.side{grid-template-columns:1fr;gap:18px}.side-card{padding:21px}.side-card h2{font-size:20px;margin-bottom:14px}.insight-item p{font-size:12px}.insight-item small{font-size:10px}.side-card .desc{font-size:12px}.side-card .btn{font-size:12px}.recent{padding:20px 17px;margin-bottom:25px}.recent .section-head h2{font-size:20px}.recent .btn{font-size:11px;min-height:36px;padding:8px 13px}.diary-row{gap:12px;align-items:flex-start;padding:18px 0;position:relative}.date-token{width:37px;height:37px;font-size:10px}.diary-content strong{font-size:12px}.diary-content p{font-size:10px;max-width:100%;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.8}.row-actions{gap:6px;position:absolute;right:0;top:12px}.row-actions button{font-size:10px}.diary-content{padding-right:49px}.row-actions button:last-child{display:none}.footer{padding:20px 0 100px;font-size:9px}.footer .wrap{flex-direction:column;gap:10px}.footer-links{gap:20px}.bottom-nav{position:fixed;left:0;right:0;bottom:0;border-top:1px solid var(--border);background:#FFFEFBF5;display:grid;grid-template-columns:repeat(4,1fr);padding:7px 8px calc(7px + env(safe-area-inset-bottom));z-index:15;backdrop-filter:blur(10px)}.bottom-nav button{background:none;font-size:10px;color:var(--ink-secondary);min-height:47px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px}.bottom-nav button span{font-size:17px;line-height:1.4}.bottom-nav .active{color:var(--primary)}.toast{bottom:82px;font-size:12px;min-width:240px;text-align:center}.drawer{padding:24px 22px 35px}.drawer-header{margin-bottom:22px}.drawer-header h2{font-size:22px}.drawer textarea{min-height:185px}.list-node{padding:13px 6px;gap:10px}.list-node strong{font-size:13px}}
@media(max-width:767px){.hero h1{font-size:28px;max-width:100%;letter-spacing:.03em}}
/* Production-sized labels keep the quiet visual style readable. */
.btn{font-size:14px}.dimension strong{font-size:13px}.dimension small{font-size:12px;line-height:1.5}.dimension>span:nth-child(2){min-width:0;overflow-wrap:break-word}.dim-count{font-size:13px}.stat span,.tree-summary .text-btn,.legend,.insight-item small,.auth-line,.review p,.diary-content p,.row-actions button,.footer,.source-tag,.drawer .hint,.evidence-meta,.list-node small{font-size:12px}.insight-item p,.side-card .desc{font-size:14px}.diary-content strong{font-size:14px}.side-card h2{overflow-wrap:break-word}.dimension-list{align-self:center}.row-actions{flex-shrink:0}.auth-line{flex-wrap:wrap;gap:4px}
@media(max-width:767px){.dimension strong{font-size:12px}.dimension{min-height:58px}.dim-count{font-size:12px}.stat{gap:4px}.stat strong{font-size:22px}.stat span,.tree-summary .text-btn{font-size:12px}.tree-summary{gap:12px}.tree-summary .text-btn{margin-left:0}.legend{font-size:12px;flex-wrap:wrap;gap:7px 12px}.diary-content strong{font-size:13px}.row-actions button{font-size:12px}.recent .btn{font-size:12px}.footer{font-size:12px}.bottom-nav button{font-size:12px}.side-card .btn{font-size:14px}}
@media (min-width:768px) and (max-width:1023px){.nav{display:none}.bottom-nav{position:fixed;left:0;right:0;bottom:0;border-top:1px solid var(--border);background:#FFFEFBF5;display:grid;grid-template-columns:repeat(4,1fr);padding:7px 8px;z-index:15}.bottom-nav button{background:none;font-size:11px;color:var(--ink-secondary);min-height:47px;display:flex;align-items:center;justify-content:center;gap:8px}.bottom-nav button span{font-size:18px}.bottom-nav .active{color:var(--primary)}.footer{padding-bottom:90px}.toast{bottom:82px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Branch names stay readable in CSS pixels as the SVG scales. */
.tree-visual{position:relative;min-width:0}
.hero-art .tree-visual{height:100%}
.branch-hit{pointer-events:stroke;cursor:help;outline:none}
.branch.is-hinted>.branch-line{stroke:#4F6038}
.branch-tooltip{position:absolute;z-index:2;display:flex;align-items:center;gap:9px;width:210px;max-width:calc(100% - 16px);box-sizing:border-box;padding:10px 14px;border:1px solid #DCE1D0;border-radius:10px;background:#FFFEFB;color:#465535;font:500 13px/1.5 var(--font-ui);box-shadow:0 6px 20px #3D49251A;transform:translateY(-100%);pointer-events:none;overflow-wrap:anywhere}
.branch-tooltip-dot{width:6px;height:6px;border-radius:50%;background:#819063;flex-shrink:0}
.ai-analysis-note{display:flex;gap:11px;align-items:flex-start;margin-top:18px;padding:13px 14px;border:1px solid #DCE1D0;border-radius:9px;background:#F3F5ED;color:var(--ink-secondary)}
.ai-analysis-mark{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#E2E8D7;color:#68794B;flex-shrink:0;font-size:13px}
.ai-analysis-note strong{display:block;color:#536143;font-size:13px;font-weight:500;line-height:1.5}
.ai-analysis-note p{margin:2px 0 3px!important;font-size:12px!important;line-height:1.7}
.ai-analysis-note small{display:block;color:var(--ink-muted);font-size:11px;line-height:1.5}
.legend{flex-wrap:wrap}
.legend-hint{margin:9px auto 14px;padding:0 8px;max-width:430px;color:var(--ink-secondary);font-size:12px;line-height:1.7;text-align:center;overflow-wrap:break-word}
.demo-actions{display:flex;align-items:center;gap:14px;flex-shrink:0}.demo-actions a{color:inherit;text-decoration:none;white-space:nowrap}.demo-actions a:hover{text-decoration:underline}
@media(max-width:767px){.demo-bar{flex-wrap:wrap;row-gap:2px}.demo-actions{gap:12px}}
.auth-page{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center;min-height:calc(100vh - 180px);padding-top:50px;padding-bottom:55px}
.auth-story{padding:24px 0 12px 35px}.auth-story h1{font-family:Georgia,'Noto Serif SC','Songti SC',serif;font-size:38px;font-weight:400;line-height:1.6;white-space:pre-line;margin:22px 0 12px;color:#414937;letter-spacing:.02em}.auth-story p{font-size:14px;color:#818373}.auth-art{max-width:430px;margin:-10px 0 -16px}.auth-art svg{display:block;width:100%;height:auto}.auth-footnote{font-size:10px;letter-spacing:3px;color:#969b87}
.auth-card{background:#fffefa;border:1px solid #e3e4d9;border-radius:18px;padding:34px 38px;max-width:450px;width:100%;justify-self:end;box-shadow:0 15px 65px #515b3c06}.auth-card h2{font-size:26px;font-weight:400;font-family:Georgia,'Noto Serif SC','Songti SC',serif;margin:27px 0 8px;line-height:1.5}.auth-intro{font-size:13px;color:#818373;margin:0 0 26px;line-height:1.8}
.auth-tabs{display:flex;gap:24px;border-bottom:1px solid #e6e7df}.auth-tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:0 0 13px;color:#8c907f;font:inherit;font-size:13px;cursor:pointer}.auth-tabs button[aria-selected=true]{border-bottom-color:#76865d;color:#526340}
.auth-card fieldset{border:0;padding:0;margin:0;min-width:0}.auth-card label{display:block;font-size:12px;color:#626954;margin-bottom:8px;margin-top:20px}.auth-card input{display:block;width:100%;min-width:0;padding:13px 14px;border:1px solid #dcdfd3;border-radius:7px;background:#fcfcf8;color:#424936;font:inherit;font-size:14px;outline-offset:3px}.auth-card input:focus{outline:2px solid #a0ae89;border-color:#87996c}.auth-card input::placeholder{color:#b2b7a7;font-size:13px}
.password-field{position:relative}.password-field input{padding-right:48px}.password-field button{position:absolute;right:4px;top:3px;bottom:3px;width:39px;border:0;background:none;cursor:pointer;color:#8b947b}.password-field svg{width:18px;fill:none;stroke:currentColor;stroke-width:1.4}.password-hint{font-size:11px;line-height:1.7;color:#949986;margin:8px 0 0}.auth-submit{margin-top:26px;justify-content:space-between;padding:13px 17px!important;min-height:46px}.auth-privacy{display:flex;gap:9px;padding-top:22px;margin-top:25px;border-top:1px solid #e9eadf;color:#909680}.auth-privacy p{font-size:11px;line-height:1.8;margin:0}.auth-privacy svg{flex:0 0 16px;width:16px;height:18px;stroke:currentColor;fill:none;stroke-width:1.4;margin-top:2px}
.account-error{padding:12px 14px;background:#f8efe9;border:1px solid #ecd8ca;border-radius:8px;color:#8b5a42;font-size:13px;line-height:1.7;overflow-wrap:anywhere}.auth-loading{min-height:60vh;display:grid;place-items:center;color:#7c8869;font-size:14px}.member-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:25px;font-size:12px;color:#939984}.member-bar span{min-width:0;overflow-wrap:anywhere}.member-bar strong{color:#64734f;font-weight:500;margin-left:12px}.member-bar button{flex-shrink:0}.member-profile{display:flex;flex-direction:column;gap:8px;border-bottom:1px solid #e4e5da;padding-bottom:20px;margin-bottom:20px;overflow-wrap:anywhere}.member-profile small{color:#939984}.member-profile strong{font-size:22px;font-weight:400}.member-profile span{font-size:13px}.member-profile button{align-self:flex-start;margin-top:8px}.footer-links a{font-size:inherit;color:inherit;text-decoration:none}.footer-links a:hover{text-decoration:underline}button:disabled{cursor:wait;opacity:.6}
@media(max-width:1000px){.auth-page{gap:30px}.auth-story{padding-left:0}.auth-story h1{font-size:31px}.auth-card{padding:27px}.auth-story .eyebrow{letter-spacing:1.5px}}
@media(max-width:767px){.auth-page{display:flex;flex-direction:column;gap:24px;padding-top:25px;padding-bottom:25px;min-height:0}.auth-story{width:100%;padding:0;max-width:450px}.auth-story h1{font-size:26px;margin:12px 0 7px;line-height:1.5}.auth-story p{font-size:12px;margin:0}.auth-art,.auth-footnote{display:none}.auth-card{max-width:450px;padding:23px;border-radius:13px}.auth-card h2{font-size:24px;margin-top:22px}.auth-card label{margin-top:16px}.auth-card input{font-size:16px}.auth-intro{margin-bottom:20px}.auth-privacy{margin-top:20px;padding-top:18px}.auth-page + .footer{padding-bottom:25px}.header .brand{white-space:nowrap}.member-bar{padding-top:18px}}

/* Consent-off notice: explains why saved entries have no leaves yet, with a one-click way to turn analysis on. */
.consent-notice{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 18px;padding:11px 14px;border:1px dashed #C9CFBB;border-radius:12px;background:#F1F2E8;color:#4B5542;font-size:13px;line-height:1.6}
.consent-notice strong{font-weight:600;color:#374029;white-space:nowrap}
.consent-notice span{flex:1 1 210px;min-width:0}
.consent-notice .text-btn{white-space:nowrap;font-weight:600;color:var(--primary)}
@media(max-width:767px){.consent-notice{font-size:12px;padding:10px 12px}}

/* A record that produced no leaf should say so, not look broken. */
.diary-leaf{display:inline-block;margin-top:6px;font-size:11px;letter-spacing:.04em;color:#8A8E7A}
.legend-hint+.legend-hint{margin-top:2px}

/* A removal is reversible, so the toast carries the undo. */
.toast{display:inline-flex;align-items:center;justify-content:center;gap:12px}
.toast-action{flex-shrink:0;padding:0;border:0;background:none;color:#DCE1D0;font:inherit;letter-spacing:.04em;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.toast-action:hover{color:#fff}

/* While the model reads the entry the tree draws from the soil. */
.roots{opacity:0;transition:opacity .25s ease}
.tree-canvas.is-feeding .roots{opacity:1;stroke:#8E9C6F;stroke-dasharray:5 6;animation:rootsFeed 1.15s linear infinite}
.tree-canvas.is-feeding .ground{animation:groundFeed 1.7s ease-in-out infinite}
.tree-canvas.is-feeding .trunk{animation:trunkFeed 1.7s ease-in-out infinite}
@keyframes rootsFeed{to{stroke-dashoffset:-22}}
@keyframes groundFeed{0%,100%{opacity:.45}50%{opacity:.95}}
@keyframes trunkFeed{0%,100%{fill:#777561}50%{fill:#8A8870}}
/* Each new leaf opens along its own twig instead of appearing at once. */
.leaf-group .leaf-blade{transform-box:fill-box;transform-origin:6% 50%}
.leaf-group.is-fresh .leaf-blade{animation:leafGrow .62s cubic-bezier(.2,.75,.3,1) both}
@keyframes leafGrow{from{transform:scale(.12);opacity:0}to{transform:scale(1);opacity:1}}
@media (prefers-reduced-motion: reduce){
  .tree-canvas.is-feeding .roots,.tree-canvas.is-feeding .ground,.tree-canvas.is-feeding .trunk,.leaf-group.is-fresh .leaf-blade{animation:none}
}

/* An entry waiting for its leaves cannot be opened yet. */
.diary-row.is-pending .row-actions{visibility:hidden}
.diary-row.is-pending .diary-content{cursor:default}
.diary-row.is-pending .diary-leaf{color:#8C8A70}

/* A removed leaf withers, falls, and waits on the soil to be picked up again. */
.leaf-falling{pointer-events:none}
.leaf-falling .falling-motion{transform-box:view-box;transform-origin:0 0;animation:leafFall 1s cubic-bezier(.4,.05,.6,.95) forwards}
.leaf-falling .leaf-blade{transform-box:fill-box;transform-origin:6% 50%;animation:leafWither 1s ease-in forwards}
@keyframes leafFall{0%{transform:translate(var(--x),var(--y))}60%{transform:translate(calc(var(--x) + var(--dx)*.55),calc(var(--y) + var(--dy)*.74))}100%{transform:translate(calc(var(--x) + var(--dx)),calc(var(--y) + var(--dy)))}}
@keyframes leafWither{0%{transform:scale(1) rotate(0deg);opacity:.95}45%{transform:scale(1.07) rotate(-9deg);opacity:.9}70%{transform:scale(.98) rotate(34deg);opacity:.65}100%{transform:scale(.8) rotate(96deg);opacity:0}}
.fallen-leaf{cursor:pointer}
.fallen-leaf path{transition:fill .15s ease,stroke .15s ease}
.fallen-leaf:hover path,.fallen-leaf:focus-visible path{fill:#8E9C6F;stroke:#7B8A5E}
.fallen-leaf:focus-visible{outline:none}
@media (prefers-reduced-motion: reduce){.leaf-falling .falling-motion,.leaf-falling .leaf-blade{animation:none}}

/* The text list lives below the tree, filling the former unused card space. */
.tree-panel{align-self:start}
.tree-summary{scroll-margin-top:24px}
.tree-summary h3{margin:0 0 0 auto;font-size:12px;font-weight:400;color:var(--ink-secondary)}
