
:root{--ink:#2c3330;--sub:#817d76;--line:#eae9e4;--green:#365e50;--red:#c53b64;--cream:#faf9f6;--blush:#f8edef}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#e5e7e2;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink)}button,input,select,textarea{font:inherit}button{border:0;cursor:pointer}button:active{transform:scale(.985)}.shell{width:min(430px,100%);margin:auto;min-height:100vh;background:var(--cream);box-shadow:0 0 45px #0001}.top{height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 21px;background:#faf9f6ed;position:sticky;top:0;z-index:20;backdrop-filter:blur(16px);border-bottom:1px solid #eeeae4}.brand{font-weight:740;font-size:15px;letter-spacing:.04em}.back{font-size:28px;background:transparent;width:36px;color:#595952;text-align:left}.tiny{font-size:11px;color:var(--sub)}.body{padding:8px 21px 105px;min-height:calc(100vh - 140px)}.nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(430px,100%);display:flex;background:#fffefaef;backdrop-filter:blur(16px);border-top:1px solid var(--line);z-index:30;padding:9px 9px max(12px,env(safe-area-inset-bottom));justify-content:space-around}.nav button{background:none;color:#89867f;font-size:11px;min-width:65px}.nav button.active{color:var(--green);font-weight:700}.ico{display:block;font-size:22px;margin-bottom:2px}.eyebrow{font-size:11px;letter-spacing:.19em;font-weight:700;color:#998b86}.h1{font-size:29px;line-height:1.32;margin:10px 0 8px;letter-spacing:-.4px}.lead{color:var(--sub);font-size:12.5px;line-height:1.9}.hero{padding:29px 0 17px;background:radial-gradient(ellipse at 84% 20%,#f9e3e6,transparent 50%)}h2{font-size:18px;line-height:1.4;margin:0;font-weight:750}h3{font-size:15px;margin:0 0 8px}p{line-height:1.65}.section{margin:27px 0 13px}.row{display:flex;justify-content:space-between;align-items:center;gap:10px}.btn{border-radius:99px;background:var(--ink);color:#fff;padding:12px 18px;font-weight:650;font-size:12px}.btn.red{background:var(--red)}.btn.green{background:var(--green)}.btn.light{background:#efeee8;color:#40443f}.btn.line{background:transparent;color:var(--ink);border:1px solid #d8d7d1}.btn.sm{padding:8px 12px;font-size:11px}.btn.full{width:100%}.link{background:none;color:#7b7872;font-size:12px;padding:7px 0}.card{background:white;border:1px solid #eeece6;border-radius:19px;padding:17px;margin:12px 0;box-shadow:0 2px 13px #00000004}.card p{font-size:12px;color:var(--sub);margin:7px 0}.board{background:#f0ede8;border-radius:23px;padding:11px}.collage{display:grid;grid-template-columns:1.2fr 1fr 1fr;grid-template-rows:125px 105px;gap:7px}.tile{border-radius:11px;background-size:cover;background-position:center;display:flex;align-items:end;padding:9px;position:relative;overflow:hidden;cursor:pointer}.tile:first-child{grid-row:span 2}.tile:nth-child(2){grid-column:span 2}.tile::after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#0006)}.tile span{z-index:1;font-size:11px;font-weight:650;color:white;position:relative;text-shadow:0 1px 3px #0005}.boardfoot{padding:14px 3px 4px}.postergrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.poster{border-radius:17px;height:168px;position:relative;background-size:cover;background-position:center;overflow:hidden;display:flex;align-items:end;padding:12px}.poster:after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#0007)}.poster b{position:relative;z-index:1;color:white;font-size:15px;text-align:left}.feeditem{background:transparent;text-align:left;padding:0}.feeditem .desc{font-size:11px;color:#888;margin:7px 0}.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:13px 0 17px}.chip{white-space:nowrap;background:#efeee9;border-radius:30px;color:#77746c;padding:9px 12px;font-size:11px}.chip.selected{background:var(--green);color:white}.field{display:block;width:100%;padding:12px 13px;border:1px solid #e2dfd7;border-radius:12px;outline:none;background:#fff;margin:9px 0 13px;color:var(--ink);font-size:13px}.label{font-size:12px;color:#64625b;font-weight:650}.seg{display:flex;background:#efeee8;border-radius:13px;padding:4px;gap:4px;margin:14px 0}.seg button{flex:1;padding:10px 2px;border-radius:10px;background:transparent;color:#89867f;font-size:12px}.seg .sel{background:white;color:var(--ink);font-weight:700;box-shadow:0 2px 8px #0000000b}.wishrow{display:flex;gap:12px;align-items:center;cursor:pointer}.thumb{width:72px;height:75px;flex:none;border-radius:13px;background-size:cover;background-position:center}.status{font-size:10px;border-radius:30px;background:#f0f5ef;color:#4f7761;padding:5px 9px;display:inline-block}.status.gray{background:#f2f0ea;color:#898172}.status.gold{background:#fbf1de;color:#a37e39}.cover{height:227px;background-size:cover;background-position:center;border-radius:19px;position:relative;overflow:hidden;margin-top:9px}.cover:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#000a)}.cover h1{position:absolute;bottom:18px;left:18px;color:white;font-size:24px;line-height:1.4;z-index:1;margin:0;max-width:85%}.metric{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.metric>div{background:#f5f4ef;padding:12px 7px;border-radius:13px;text-align:center}.metric b{font-size:21px;color:#334f43}.metric small{display:block;font-size:10px;color:#86837b;margin-top:6px}.entry{display:flex;gap:10px;padding:15px 0;border-bottom:1px solid #f0eee9}.dot{width:8px;height:8px;background:#a8bfae;border-radius:50%;margin-top:5px;flex:none}.entry b{font-size:12px}.entry p{font-size:12px;margin:4px 0;color:#777}.date{font-size:10px;color:#9a968e}.task{display:flex;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid #f1efea}.task:last-child{border:0}.check{background:white;width:24px;height:24px;border-radius:7px;border:1.5px solid #b7b9b0;color:white;flex:none}.check.done{background:#759881;border-color:#759881}.tt{font-size:13px;font-weight:670}.muted{color:#9c9992}.sub{font-size:11px;color:#8a867e;margin-top:5px}.calendarstrip{display:flex;justify-content:space-between;gap:4px;margin:14px 0}.day{background:transparent;border-radius:12px;min-width:42px;padding:7px 5px;text-align:center;font-size:11px;color:#888}.day strong{display:block;margin-top:7px;font-size:14px;color:#3d413b}.day.sel{background:#365e50;color:#fff}.day.sel strong{color:#fff}.timeline{position:relative;padding-left:50px;margin:18px 0 25px;border-left:1px solid #e4e2db;margin-left:36px}.timecard{position:relative;background:#eaf1ea;border-radius:13px;padding:13px;margin:15px 0 20px}.timecard.course{background:#f7e9ee}.timecard.other{background:#f3f0e8}.clock{position:absolute;left:-82px;width:70px;top:14px;text-align:right;font-size:11px;color:#777}.tabline{display:flex;gap:10px;margin:16px 0}.tabline button{padding:8px 14px;border-radius:13px;background:#f1efe9;font-size:12px;color:#777}.tabline button.sel{background:#2d4d40;color:white}.coursegrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.courseart{height:148px;display:flex;align-items:center;justify-content:center;text-align:center;padding:16px;border-radius:14px;font-size:22px;color:#fff;font-weight:800;line-height:1.4}.price{color:#b62d58;font-weight:750;font-size:14px;margin-top:8px}.bookgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.book{height:151px;border-radius:7px;padding:15px 8px;font-size:15px;line-height:1.45;font-weight:730;display:flex;align-items:center;text-align:center;justify-content:center}.modal{position:fixed;z-index:80;inset:0;background:#0006;display:flex;align-items:end;justify-content:center}.sheet{background:#faf9f6;border-radius:25px 25px 0 0;width:min(430px,100%);padding:24px 22px max(27px,env(safe-area-inset-bottom));max-height:86vh;overflow-y:auto;box-shadow:0 -14px 34px #0002}.sheet h2{font-size:20px;margin:0 0 9px}.hint{font-size:12px;line-height:1.7;color:var(--sub)}.toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);background:#343a34;color:white;border-radius:99px;padding:11px 16px;font-size:12px;z-index:99;white-space:nowrap}.stamp{width:220px;height:220px;border-radius:50%;margin:12px auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:7px double #9fba9d;box-shadow:0 0 0 8px #eff4ec,0 4px 17px #0001;background:radial-gradient(circle,#fff,#f0f5eb)}.stamp .icon{font-size:65px;line-height:1.3}.stamp b{font-size:15px;max-width:160px}.stamp small{font-size:10px;letter-spacing:2px;color:#798d77;margin-top:5px}.bookpage{background:#fff;border:1px solid #eee6da;border-radius:18px;padding:21px 20px;margin:13px 0;box-shadow:2px 3px 0 #ede8df}.bookpage .num{font-size:10px;letter-spacing:.17em;color:#a39184}.bookpage h2{font-size:20px;margin:12px 0}.bookpage p{font-size:13px;color:#6c6963}.bookpage img{width:100%;border-radius:12px;margin:7px 0}.ai{background:#e9f0e9;border-radius:16px;padding:14px;display:flex;gap:11px;cursor:pointer}.no-border{border:0}.note{background:#f6efe5;border-radius:15px;padding:12px 13px;color:#81705a;font-size:12px;line-height:1.65}.bigplus{font-size:16px;color:var(--red)}

/* V3.1: reference-aligned wish waterfall + hourly time axis */
.seg.wish-switch{background:#eae9e6;border-radius:40px;padding:3px;margin:18px 0 20px;}
.seg.wish-switch button{border-radius:35px;font-size:14px;padding:12px 4px}.seg.wish-switch button.sel{background:#252522;color:white;box-shadow:none}
.waterfall{column-count:2;column-gap:13px;margin-top:14px}.waterfall-item{display:inline-block;width:100%;break-inside:avoid;margin:0 0 14px;background:none;padding:0;text-align:left;vertical-align:top}
.waterfall-img{width:100%;border-radius:19px;background-size:cover;background-position:center;position:relative;overflow:hidden;display:flex;align-items:flex-end;min-height:160px;padding:13px}
.waterfall-img:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#0009)}.waterfall-img b{position:relative;z-index:1;color:#fff;font-size:15px;line-height:1.5;text-shadow:0 1px 2px #0007}.waterfall-cap{font-size:11px;color:#88837c;margin:6px 3px}
.vision-summary{background:#fff;border:1px solid #efece7;border-radius:19px;padding:14px;margin:0 0 14px}.vision-summary .tiny{line-height:1.65}
.wish-filter{display:flex;gap:7px;margin:11px 0 6px}.wish-filter button{padding:7px 11px;border-radius:25px;background:#eeeae3;color:#777;font-size:11px}.wish-filter button.selected{background:#292927;color:white}
.date-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:16px 0}.date-head h1{font-size:26px;margin:0}.date-head small{font-size:14px;color:#777;font-weight:400}.view-toggle{display:flex;gap:2px;padding:3px;background:#eae9e6;border-radius:35px}.view-toggle button{border-radius:30px;padding:8px 15px;font-size:13px;color:#888;background:transparent}.view-toggle button.sel{background:#fff;color:#292927;font-weight:700}
.hour-axis{position:relative;min-height:1140px;margin:25px 0 45px 48px;border-top:1px solid #e3e1dc}.hour-line{position:absolute;left:0;right:0;height:1px;background:#e6e4dd}.hour-label{position:absolute;left:-47px;top:-10px;font-size:12px;color:#aaa}.hour-event{position:absolute;border-radius:10px;padding:11px 10px 8px 13px;border-left:4px solid #23af76;background:#e0f5eb;overflow:hidden;color:#315346;z-index:2}.hour-event.official{background:linear-gradient(150deg,#f8deea,#f3a5c5);border-color:#de0c65;color:#452b3a}.hour-event.course{background:#f5edf9;border-color:#ae8ac8;color:#493c5b}.hour-event.event{background:#fff;border:1px solid #dedbd5;border-left:4px solid #bbb;color:#5d5b55}.hour-event.habit{background:#ebf4ed;border-color:#83ad89;color:#42634a}.hour-event .event-check{display:flex;gap:8px;align-items:flex-start}.hour-event .event-check b{font-size:12px;line-height:1.5}.hour-event .event-time{font-size:10px;margin-top:5px;opacity:.75}.hour-event .event-origin{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px;opacity:.82}.now-line{position:absolute;left:0;right:0;height:2px;background:#e37079;z-index:5}.now-line:before{content:'';position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:#e37079}
.hour-help{font-size:11px;color:#aaa;margin-top:8px}.floating-add{position:fixed;bottom:91px;left:calc(50% + min(215px,50vw) - 70px);width:52px;height:52px;border-radius:50%;background:#232522;color:white;font-size:32px;z-index:25;box-shadow:0 5px 15px #0002}

/* V3.2: approved floating bottom navigation and horizontal course catalogue */
.nav{bottom:19px;width:min(386px,calc(100% - 30px));border-radius:100px;padding:5px;min-height:70px;border:1px solid #ffffffdd;box-shadow:0 8px 36px #39352c17;justify-content:stretch;background:#fffefaf2;gap:2px}
.nav button{flex:1;min-width:0;border-radius:100px;padding:9px 2px 7px;font-size:11px;line-height:1.2;color:#85857e;display:flex;flex-direction:column;align-items:center;justify-content:center}
.nav button.active{color:#252624;background:#eae9e3;font-weight:650}
.nav .ico{font-size:25px;margin:0 0 4px;line-height:1.1}
.course-head{margin:25px 0 14px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.course-head p{color:#99978f;font-size:11.5px;margin:6px 0 0}
.course-head span{color:#9f5369;font-size:11px;white-space:nowrap}
.course-list{display:flex;flex-direction:column;gap:12px;margin-bottom:50px}
.course-row{width:100%;display:flex;text-align:left;gap:15px;align-items:stretch;background:#fff;padding:15px;border-radius:17px;min-height:146px;box-shadow:0 2px 12px #2a211908}
.course-cover{width:104px;height:120px;flex-shrink:0;position:relative;overflow:hidden;border-radius:8px;background:#e8ece7}
.course-cover img{height:100%;width:100%;object-fit:cover;display:block}
.course-cover i{position:absolute;left:4px;bottom:4px;font-style:normal;color:#fff;background:#414943b8;padding:3px 7px;border-radius:5px;font-size:11px}
.course-info{min-width:0;flex:1;display:flex;flex-direction:column;align-items:stretch;padding:1px 0}
.course-info h3{font-size:15px;line-height:1.32;margin:1px 0 8px;color:#272825}
.course-info p{color:#96948e;font-size:11.5px;margin:0;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.course-meta{margin-top:auto;display:flex;align-items:end;justify-content:space-between;gap:6px}
.course-meta b{font-size:18px;color:#dd4861}
.course-meta small{color:#95948f;border:1px solid #e5e4e2;border-radius:5px;padding:3px 6px;white-space:nowrap;font-size:10px}
.member-cost{color:#a18479;font-size:10.5px;margin-top:5px}

/* V3.4: complete user-owned vision board */
.vb-section-head{margin:18px 0 12px}.vb-section-head h2{margin:0 0 4px}.vision-art{background:#f4efe6;border:1px solid #e6ddcd;border-radius:18px;overflow:hidden;box-shadow:0 12px 30px #3c2d1610;padding:12px}.vision-art-head{text-align:center;padding:22px 8px 18px;background:#607063;color:#fff;border-radius:11px 11px 0 0}.vision-art-head h2{font-family:serif;font-weight:500;font-size:24px;letter-spacing:2px;margin:9px 0}.vision-art-note{font-size:11px;letter-spacing:2px;color:#ece9df}.vb-grid{display:grid;gap:7px;padding:9px 0;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:42px}.vb-piece{border-radius:6px;background-position:center;background-size:cover;position:relative;overflow:hidden;grid-column:span 3;grid-row:span 3;cursor:pointer}.vb-piece::after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#0007)}.vb-piece span{position:absolute;bottom:9px;left:9px;right:7px;color:#fff;font-size:11px;z-index:1;text-shadow:0 1px 3px #0005}.layout-magazine .vb-piece:nth-child(6n+1){grid-column:span 4;grid-row:span 4}.layout-magazine .vb-piece:nth-child(6n+2){grid-column:span 2;grid-row:span 2}.layout-magazine .vb-piece:nth-child(6n+3){grid-column:span 2;grid-row:span 2}.layout-magazine .vb-piece:nth-child(6n+4){grid-column:span 3;grid-row:span 3}.layout-magazine .vb-piece:nth-child(6n+5){grid-column:span 3;grid-row:span 4}.layout-magazine .vb-piece:nth-child(6n+6){grid-column:span 3;grid-row:span 3}.layout-polaroid .vb-piece{grid-column:span 3;grid-row:span 4;border:7px solid #fff;border-bottom-width:24px;box-shadow:0 2px 7px #0002;border-radius:2px;transform:rotate(-2deg)}.layout-polaroid .vb-piece:nth-child(even){transform:rotate(2deg)}.layout-grid .vb-piece{grid-column:span 3;grid-row:span 3}.layout-stack .vb-piece{grid-column:span 6;grid-row:span 3}.layout-stack .vb-piece:nth-child(2n){grid-row:span 4}.vb-footer{display:flex;justify-content:space-between;font-size:9px;letter-spacing:2px;padding:10px;color:#6c786a}.vb-footer span{font-size:15px}.vision-wishes-head{margin:26px 0 12px;padding-top:14px;border-top:1px solid #e6e3dd}.vision-wishes-head h2{margin:0}.vision-empty{text-align:center;padding:33px 12px;background:#fffaf3}.vision-empty b{display:block;margin:10px 0}.vision-empty p{font-size:12px;color:#7b7771}.vision-empty button{margin:4px}.preset-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:10px 0}.preset{background:#f5f3ee;border:2px solid transparent;border-radius:10px;padding:12px 5px;color:#4d554e}.preset.chosen{border-color:#476b57;background:#eef3ed}.preset b{display:block;font-size:12px}.preset-icon{display:grid;grid-template-columns:1fr 1fr;gap:3px;height:44px;width:56px;margin:0 auto 8px}.preset-icon i{display:block;background:#99aa96;border-radius:2px}.preset-magazine i:first-child{grid-row:span 2}.preset-stack{grid-template-columns:1fr}.preset-polaroid i{border:2px solid white}.preset-grid i:nth-child(2){background:#d5bca0}.edit-piece{display:flex;align-items:center;gap:6px;padding:9px 0;border-bottom:1px solid #eee}.edit-thumb{width:46px;height:56px;border-radius:6px;background-size:cover;background-position:center;flex-shrink:0}.edit-piece-name{flex:1;min-width:0}.edit-piece-name b{font-size:12px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edit-piece-name span{font-size:10px;color:#aaa}.mini{background:#f2f1ee;border-radius:6px;padding:7px 6px;font-size:11px;color:#435349}.mini.mute{color:#a04b58}.mini:disabled{opacity:.25}.edit-panel .label{margin-top:17px}.edit-panel .label small{font-weight:400;color:#999}.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.photo-thumb{height:75px;border-radius:8px;background-size:cover;background-position:center;border:2px solid #eee}

/* V3.7: Wish collection uses horizontal 30/70 cards, not masonry cards. */
.wish-h-list{display:flex;flex-direction:column;gap:11px;margin-top:12px}
.wish-h-row{display:flex;width:100%;min-height:128px;text-align:left;padding:10px;border:1px solid #f1efeb;background:white;border-radius:17px;gap:13px;align-items:stretch;box-shadow:0 2px 8px rgba(40,35,29,.045)}
.wish-h-photo{width:30%;flex:0 0 30%;min-height:116px;background-position:center;background-size:cover;border-radius:11px;overflow:hidden}
.wish-h-info{width:70%;min-width:0;flex:1;display:flex;flex-direction:column;gap:8px;padding:5px 0}
.wish-h-title{font-weight:700;font-size:16px;color:#292d29;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.wish-h-meta{font-size:11px;color:#88857f;line-height:1.5}
.wish-h-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:auto}
.wish-h-state{border-radius:30px;background:#e5efe8;color:#45634c;padding:4px 9px;font-size:11px;white-space:nowrap}
.wish-h-state.waiting{background:#f1eee9;color:#77706b}.wish-h-state.done{background:#fff0d9;color:#ad7440}
.wish-h-chevron{font-size:25px;color:#aaa}
.wish-h-hint{font-size:11px;color:#666b65;line-height:1.5}
.blank-wish{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#647766}.blank-wish span{font-size:10px;letter-spacing:1px}.blank-wish i{font-size:32px;font-style:normal}


.course-hero{height:215px;position:relative;margin-top:12px;border-radius:19px;overflow:hidden;background:#e5e8e0}.course-hero-img{width:100%;height:100%;object-fit:cover}.course-hero-tag{position:absolute;top:14px;left:14px;background:#fffefaed;color:#476354;border-radius:30px;padding:7px 11px;font-size:11px;font-weight:700}.course-title-row{margin-top:17px}.course-facts{display:flex;gap:10px;flex-wrap:wrap;margin:17px 0;color:#757b72;font-size:11px}.course-facts span{background:#f0f2eb;border-radius:20px;padding:7px 10px}.course-pay,.course-progress{background:#fff;border:1px solid #eeeae5;border-radius:18px;padding:18px;margin:18px 0}.course-pay small{color:#999;font-size:11px}.price-large{font-size:23px;font-weight:800;color:#3b3f39;margin-top:4px}.member-price{font-size:23px;font-weight:800;color:#c34064;margin-top:4px}.course-progress .row{font-size:12px;color:#5d6359}.progress-track{height:8px;border-radius:12px;background:#eff1eb;margin-top:13px;overflow:hidden}.progress-track div{height:100%;border-radius:12px;background:#6e987e;transition:width .2s}.course-section-title{display:flex;justify-content:space-between;align-items:center;margin:28px 0 13px}.course-section-title small{font-size:11px;color:#94938c}.lesson-list{border:1px solid #eeece6;border-radius:17px;background:#fff;overflow:hidden}.lesson-item{padding:2px 10px;display:flex;align-items:center;border-bottom:1px solid #f0eee9}.lesson-item:last-child{border:0}.lesson-main{flex:1;display:flex;align-items:center;gap:12px;background:transparent;text-align:left;padding:13px 2px;min-width:0}.lesson-number{width:32px;height:32px;border-radius:50%;background:#f1f2ed;display:flex;align-items:center;justify-content:center;color:#7c877a;font-size:11px;flex:none}.lesson-number.complete{background:#d9ebe0;color:#326849}.lesson-desc{flex:1;min-width:0}.lesson-desc b{font-size:12px;display:block}.lesson-desc small{font-size:10px;color:#98968e;display:block;margin-top:4px}.lesson-chevron{color:#b0afa9;font-size:20px}.lesson-schedule{font-size:11px;color:#527a62;background:#ecf4ec;padding:8px 11px;border-radius:16px}.course-link-card{background:#f3f4ee;border-radius:16px;padding:16px}.course-link-card p{font-size:12px;color:#74786f;line-height:1.8;margin:0 0 12px}.study-placeholder{height:165px;background:linear-gradient(125deg,#e8efe7,#f5efeb);border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;margin:17px 0}.study-placeholder small{color:#8d8e85;font-size:10px}

.vision-extras{display:flex;gap:8px;margin:10px 0 16px}.vision-extras button{flex:1;background:#fff;border:1px solid #e5e2da;border-radius:12px;padding:11px 5px;font-size:13px}.wish-progress{height:9px;background:#edeae4;border-radius:10px;overflow:hidden;margin:8px 0}.wish-progress i{display:block;height:100%;background:#76a995;border-radius:10px}

.vb-grid.layout-magazine,.vb-grid.layout-polaroid,.vb-grid.layout-grid,.vb-grid.layout-stack{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-auto-rows:100px!important;gap:5px!important;min-height:0!important;align-items:stretch!important;grid-auto-flow:row dense!important}
.vb-grid .vb-piece{grid-row:auto!important;grid-column:auto!important;min-height:100px!important;width:auto!important;transform:none!important;margin:0!important;border-radius:6px!important;position:relative!important}
.vb-grid .vb-piece:nth-child(5n + 1){grid-column:span 2!important;grid-row:span 2!important}
.vb-grid .vb-piece:nth-child(7n + 4){grid-row:span 2!important}
.vb-grid.layout-grid .vb-piece{grid-column:span 1!important;grid-row:span 1!important}
.vb-grid.layout-stack{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:135px!important}
.vb-grid.layout-polaroid .vb-piece{border:7px solid #fff!important;border-bottom-width:22px!important}
.vb-sticker{display:flex;align-items:center;justify-content:center;text-align:center;background:#f2eee6;color:#77685d;font-family:Georgia,serif;font-size:17px;letter-spacing:2px;min-height:100px;padding:8px}
.vb-sticker:nth-child(2n){background:#dbe4d9;color:#496455}
.vb-sticker span{line-height:1.4;overflow-wrap:anywhere}
.v37-page-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0}
.v37-page-actions button{border:1px solid #deded9;border-radius:14px;padding:12px;background:white;font-size:13px;font-weight:650}
.v37-prog{background:#f5f5f2;border-radius:18px;padding:17px;margin:15px 0}
.v37-prog .bar{height:9px;background:#e3e2dd;border-radius:20px;overflow:hidden;margin:10px 0}
.v37-prog .bar i{display:block;height:100%;background:#78a692;border-radius:20px}
.v37-milestone{font-size:12px;line-height:1.9;color:#666}
.v37-mine-grid{display:grid;gap:10px;margin:12px 0}
.v37-mine-link{width:100%;text-align:left;border:1px solid #e6e6e0;background:white;padding:17px;border-radius:18px;font-size:16px;font-weight:650}
.v37-mine-link small{display:block;color:#92918b;font-size:12px;font-weight:400;margin-top:6px}
.v37-study-card{border:1px solid #e1e1dc;border-radius:18px;padding:16px;margin-top:12px;background:#fff}
.v37-study-card h3{font-size:16px;margin:4px 0 12px}
.v37-video{background:#141514;color:#fff;height:150px;border-radius:10px;display:grid;place-items:center;font-size:35px;margin:10px 0}
