:root{--pink:#d94f82;--pink-deep:#bd527d;--ink:#423341;--muted:#8e7b89;--line:#f3e5ed;--soft:#fff0f6;--canvas:#fff7fa;color:var(--ink);background:var(--canvas);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.55}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,p{margin:0}button:focus-visible,input:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #e99fbe}.shell{background:linear-gradient(#fff3f8 0,#fff9fb 300px 100%);grid-template-columns:242px minmax(0,1fr);min-height:100vh;display:grid}.side{border-right:1px solid var(--line);background:#fffdfeeb;flex-direction:column;height:100vh;padding:30px 16px 22px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;margin-bottom:55px;padding:0 12px;display:flex}.brand-logo{object-fit:cover;border-radius:15px;width:45px;height:45px;box-shadow:0 6px 16px #b76e8b1c}.brand-copy{flex-direction:column;min-width:0;display:flex}.brand strong{letter-spacing:.06em;font-size:18px;font-weight:650;line-height:1.3}.brand span{color:#aa8c9d;white-space:nowrap;font-size:11px}.side-label{color:#b79caa;letter-spacing:.18em;margin:0 14px 12px;font-size:11px;font-weight:600}.side nav{gap:7px;display:grid}.nav-link{color:#806b7b;border:1px solid #0000;border-radius:14px;align-items:center;gap:12px;min-height:46px;padding:0 14px;font-weight:500;transition:background .18s,color .18s,transform .18s;display:flex}.nav-link:hover{color:var(--pink-deep);background:#fff2f7;transform:translate(2px)}.nav-link.router-link-active{color:var(--pink-deep);background:linear-gradient(110deg,#ffe9f2,#fff2f9);border-color:#f7dce8;font-weight:600}.nav-icon{color:#c483a2;place-items:center;width:25px;height:25px;font-size:21px;line-height:1;display:grid}.nav-link.router-link-active .nav-icon{color:var(--pink)}.nav-arrow{color:#d2acbd;opacity:0;margin-left:auto;font-size:20px}.nav-link:hover .nav-arrow,.nav-link.router-link-active .nav-arrow{opacity:1}.side-note{background:linear-gradient(135deg,#fff0f6,#f5eeff);border:1px solid #f5dfe9;border-radius:18px;margin-top:auto;padding:23px 17px 18px;position:relative;overflow:hidden}.side-note-heart{color:#d783a7;margin-bottom:12px;font-size:27px;line-height:1;display:block}.side-note strong{font-size:13px;font-weight:600}.side-note p{color:#9e8295;margin-top:7px;font-size:11px;line-height:1.7}.main{min-width:0}.top{justify-content:space-between;align-items:flex-start;gap:20px;padding:34px clamp(22px,4vw,58px) 22px;display:flex}.page-heading .eyebrow,.eyebrow{color:#c17092;letter-spacing:.15em;font-size:11px;font-weight:650}.page-heading h1{letter-spacing:.03em;margin:6px 0 3px;font-size:clamp(25px,2.3vw,32px);font-weight:650;line-height:1.3}.page-heading p{color:#a18b9a;font-size:13px}.who{white-space:nowrap;align-items:center;gap:10px;padding-top:7px;display:flex}.who-avatar{width:35px;height:35px;color:var(--pink);background:#ffe5f0;border-radius:12px;place-items:center;font-size:22px;line-height:1;display:grid}.who-name{color:#755c6d;font-size:13px;font-weight:550}.content{width:100%;max-width:1370px;padding:0 clamp(22px,4vw,58px) 55px}.dictionary-shell{height:100dvh;min-height:0;overflow:hidden}.dictionary-shell .side{height:100%;min-height:0;overflow-y:auto}.dictionary-shell .main{flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.dictionary-shell .top{flex:none}.dictionary-shell .content{flex-direction:column;flex:1;min-height:0;padding-bottom:28px;display:flex}.welcome-banner{background:linear-gradient(110deg,#ffe6f0 0%,#f5e9ff 72%,#f8f0ff 100%);border:1px solid #f8dfe9;border-radius:24px;align-items:center;min-height:205px;padding:30px 42px;display:flex;position:relative;overflow:hidden}.welcome-banner:before,.login-story:before{content:"";border:1px solid #fff8;border-radius:50%;width:270px;height:270px;position:absolute;bottom:-215px;right:4%}.welcome-copy{z-index:1;position:relative}.banner-kicker{color:#b87294;letter-spacing:.07em;align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.welcome-copy h2{color:#80435f;letter-spacing:.04em;margin:11px 0 9px;font-size:clamp(21px,2.1vw,28px);font-weight:650;line-height:1.45}.welcome-copy p{color:#ac839a;font-size:12px}.diary-art{width:175px;height:165px;position:absolute;top:50%;right:8%;transform:translateY(-50%)}.paper{border-radius:9px 17px 17px 9px;width:112px;height:145px;position:absolute;box-shadow:0 16px 27px #a45c8528}.paper-back{background:#c6b8ee;top:1px;right:13px;transform:rotate(16deg)}.paper-front{background:#fffafe;border:1px solid #f7ddeb;top:16px;left:12px;transform:rotate(-10deg)}.paper-front:before{content:"";background:#f7d8e5;width:2px;position:absolute;top:0;bottom:0;left:12px}.paper-front span{color:#e58eaf;text-align:center;margin:21px 0 12px 14px;font-size:50px;line-height:1;display:block}.paper-front i{background:#f2d6e4;border-radius:3px;width:48px;height:3px;margin:12px auto;display:block}.paper-front i:last-child{width:31px}.art-spark{color:#c99bd5;font-size:25px;position:absolute;top:-15px;right:0}.section-heading{justify-content:space-between;align-items:end;gap:12px;margin:29px 0 17px;display:flex}.section-heading h2{margin-top:3px;font-size:19px;font-weight:650}.section-note{color:#b19aa9;font-size:12px}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.stat{border:1px solid var(--line);background:#fff;border-radius:20px;min-height:148px;padding:22px 24px;position:relative;overflow:hidden;box-shadow:0 8px 25px #704b6410}.stat:after{content:"";background:var(--stat-soft);border-radius:50%;width:125px;height:125px;position:absolute;bottom:-62px;right:-56px}.stat-pink{--stat-soft:#fff0f6;--stat-color:#d94f82}.stat-lilac{--stat-soft:#f3eeff;--stat-color:#a27cc6}.stat-cream{--stat-soft:#fff6e9;--stat-color:#d1a061}.stat-mint{--stat-soft:#ebf7f1;--stat-color:#78ad98}.stat-icon{background:var(--stat-soft);width:37px;height:37px;color:var(--stat-color);border-radius:12px;place-items:center;margin-bottom:12px;font-size:22px;line-height:1;display:grid}.stat>span:not(.stat-icon){color:#987f8e;font-size:12px;display:block}.stat strong{color:var(--ink);font-variant-numeric:tabular-nums;margin-top:2px;font-size:31px;font-weight:650;line-height:1.25;display:block}.table-wrap,.tag-form,.card{border:1px solid var(--line);background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 8px 25px #704b6410}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;white-space:nowrap;border-bottom:1px solid #f6ebf1;padding:15px 20px}th{color:#aa8e9d;background:#fffafd;font-size:12px;font-weight:600}td{color:#604e5d;font-size:13px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fffafd}.hint{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:16px;padding:20px 22px}.warn{color:#c94775}.status-pill{color:#5b987b;background:#edf8f3;border-radius:999px;align-items:center;gap:6px;padding:4px 11px;font-size:12px;font-weight:600;display:inline-flex}.status-pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.status-pill.inactive{color:#a5939e;background:#f6f1f4}.swatch{vertical-align:middle;border:3px solid #fff;border-radius:50%;width:20px;height:20px;display:inline-block;box-shadow:0 0 0 1px #eadce5,0 2px 5px #704b6422}.toolbar,.pager,.form-actions,.form-grid{align-items:center;gap:12px;display:flex}.toolbar{margin:0 0 16px}.pager{color:#927c8a;justify-content:flex-end;margin-top:17px;font-size:12px}input:not([type=checkbox]){background:#fffafd;border:1px solid #eedfe7;border-radius:11px;outline:none;height:42px;padding:0 14px;transition:border-color .18s,box-shadow .18s}input:not([type=checkbox]):focus{border-color:#de8bad;box-shadow:0 0 0 3px #fae5ee}input::placeholder{color:#baa8b3}input[type=checkbox]{width:16px;height:16px;accent-color:var(--pink)}.toolbar input{min-width:220px}.primary,.ghost,.text-btn{border:0}.primary,.ghost{white-space:nowrap;border-radius:11px;justify-content:center;align-items:center;min-height:42px;padding:0 18px;font-weight:600;display:inline-flex}.primary{color:#fff;background:linear-gradient(110deg,#e96799,#d94f82);box-shadow:0 7px 15px #d94f8229}.primary:hover{filter:brightness(1.04)}.ghost{color:var(--pink-deep);background:#fff0f6;border:1px solid #f2dce6}.ghost:hover{background:#ffe5f0}.text-btn{color:var(--pink-deep);white-space:nowrap;background:0 0;padding:5px 3px;font-size:13px;font-weight:600}.text-btn:hover{color:#a63463;text-decoration:underline}button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.tag-form{margin-bottom:19px;padding:25px 26px 24px}.form-heading{align-items:center;gap:12px;margin-bottom:24px;display:flex}.form-heart{background:var(--soft);width:39px;height:39px;color:var(--pink);border-radius:13px;flex:none;place-items:center;font-size:25px;display:grid}.form-heading h2{font-size:17px;font-weight:650}.form-heading p{color:#a58d9b;margin-top:2px;font-size:12px}.form-grid{flex-wrap:wrap;align-items:end;gap:10px 14px}.tag-form label{color:#836d7c;flex-direction:column;flex:1;gap:7px;min-width:130px;font-size:12px;font-weight:600;display:flex}.tag-form label input:not([type=checkbox]){width:100%}.tag-form .check{flex-direction:row;flex:none;align-items:center;gap:8px;min-width:75px;height:42px}.form-actions{margin-top:20px}.tag-form .warn{margin-top:12px}.card{padding:28px}.card h2{margin-bottom:10px;font-size:19px}.card p{color:var(--muted);margin-bottom:18px}.card a{color:var(--pink-deep);font-weight:600}.login-page{background:#fff9fb;grid-template-columns:minmax(0,1fr) minmax(420px,46%);min-height:100vh;display:grid}.login-story{background:linear-gradient(135deg,#ffe6f0,#f4e9ff 75%,#edf8f3);flex-direction:column;min-height:100vh;padding:42px clamp(35px,5vw,82px);display:flex;position:relative;overflow:hidden}.login-brand{letter-spacing:.06em;align-items:center;gap:12px;font-size:18px;font-weight:650;display:flex}.login-brand img{border-radius:15px;width:46px;height:46px}.login-story-copy{z-index:1;margin:auto 0;position:relative}.login-story-copy h2{color:#80435f;letter-spacing:.04em;margin:22px 0 18px;font-size:clamp(32px,3.6vw,51px);font-weight:650;line-height:1.5}.login-story-copy p{color:#a97993;font-size:15px}.login-story .diary-art{top:auto;bottom:14%;right:10%;transform:rotate(5deg)scale(1.25)}.login-story-footer{z-index:1;color:#b48fa4;letter-spacing:.17em;font-size:11px;font-weight:600;position:relative}.login-card{align-self:center;width:min(440px,100% - 64px);margin:40px auto;padding:34px 0}.login-heart{background:var(--soft);width:47px;height:47px;color:var(--pink);border-radius:15px;place-items:center;margin-bottom:28px;font-size:29px;line-height:1;display:grid}.login-card h1{margin:6px 0 8px;font-size:31px;font-weight:650}.lead{color:var(--muted);margin-bottom:35px;font-size:13px}.login-card label{color:#765f70;flex-direction:column;gap:9px;margin-bottom:19px;font-size:13px;font-weight:600;display:flex}.login-card input{width:100%;height:48px}.login-card .warn{margin:-5px 0 16px}.login-card .primary{border-radius:12px;width:100%;min-height:48px;margin-top:9px}.login-footnote{color:#bca8b5;text-align:center;margin-top:24px;font-size:11px}@media (width<=980px){.shell{grid-template-columns:200px minmax(0,1fr)}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.login-story .diary-art{opacity:.45;transform:rotate(5deg)}}@media (width<=720px){.shell{display:block}.dictionary-shell{flex-direction:column;display:flex}.dictionary-shell .side{flex:none;height:auto;max-height:30dvh}.dictionary-shell .main{flex:1;height:auto}.dictionary-shell .top{padding-top:18px;padding-bottom:16px}.dictionary-shell .content{padding-bottom:24px}.side{border-right:0;border-bottom:1px solid var(--line);height:auto;padding:17px 16px 12px;position:relative}.brand{margin-bottom:16px;padding:0 3px}.brand-logo{border-radius:13px;width:39px;height:39px}.brand strong{font-size:16px}.side-label,.side-note{display:none}.side nav{gap:7px;padding-bottom:3px;display:flex;overflow-x:auto}.nav-link{border-radius:11px;flex:none;min-height:40px;padding:0 12px;font-size:12px}.nav-icon{width:18px;height:18px;font-size:17px}.nav-arrow{display:none}.top{align-items:flex-start;padding:25px 18px 19px}.page-heading h1{font-size:24px}.page-heading p{max-width:250px;font-size:12px}.who{gap:6px;padding-top:2px}.who-avatar{width:30px;height:30px;font-size:19px}.who-name{display:none}.content{padding:0 18px 35px}.welcome-banner{min-height:190px;padding:25px}.welcome-banner .diary-art{opacity:.72;right:-13px;transform:translateY(-50%)scale(.75)}.welcome-copy{max-width:76%}.section-note{display:none}.stat-grid{gap:11px}.stat{min-height:129px;padding:16px}.stat strong{font-size:27px}th,td{padding:13px 15px}.pager{flex-wrap:wrap;justify-content:center}.login-page{background:linear-gradient(#ffeef5,#fff9fb 240px);min-height:100vh;padding:24px;display:block}.login-story{background:0 0;min-height:auto;padding:0}.login-story:before,.login-story-copy,.login-story .diary-art,.login-story-footer{display:none}.login-card{width:min(440px,100%);margin:45px auto 0;padding:0 0 35px}}@media (width<=420px){.welcome-copy h2{font-size:20px}.toolbar input{width:100%;min-width:0}.tag-form{padding:20px}.form-grid label{flex-basis:calc(50% - 8px);min-width:0}}
