:root{color-scheme:light;font-family:Inter,Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif;color:#24322f;background:#f3f0e8;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #18312d;--muted: #697672;--paper: #fffdf8;--line: #d8d8cc;--jade: #2f6b5e;--jade-dark: #183f37;--gold: #b78a42;--spring: #4a8462;--summer: #a94f43;--autumn: #b8782f;--winter: #476c99;--shadow: 0 20px 60px rgba(22, 47, 42, .08)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 8% 20%,rgba(183,138,66,.1),transparent 27rem),linear-gradient(180deg,#eef2e9 0,#f5f2ea 32rem,#f3f0e8)}button,select,input{font:inherit}button,a,select,input{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid rgba(183,138,66,.45);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.45}.app-shell{min-height:100vh}.hero{position:relative;overflow:hidden;color:#f7f1df;background:linear-gradient(110deg,#0a2723fa,#18433af2),#183f37}.hero:before,.hero:after{position:absolute;content:"";border:1px solid rgba(221,190,125,.18);border-radius:50%}.hero:before{width:32rem;height:32rem;right:-9rem;top:-17rem;box-shadow:0 0 0 4rem #ddbe7d06,0 0 0 8rem #ddbe7d05}.hero:after{width:13rem;height:13rem;right:20%;bottom:-9rem}.topbar,.hero__content,.main-content,.site-footer{width:min(1440px,calc(100% - 48px));margin-inline:auto}.topbar{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:24px 0;border-bottom:1px solid rgba(247,241,223,.12)}.brand{display:inline-flex;gap:12px;align-items:center;color:inherit;text-decoration:none}.brand__seal{display:grid;width:46px;height:46px;place-items:center;border:1px solid rgba(232,202,139,.68);color:#ecd9ac;font-family:"Noto Serif TC",PMingLiU,serif;font-size:13px;letter-spacing:.08em;transform:rotate(-2deg)}.brand strong,.brand small{display:block}.brand strong{font-family:"Noto Serif TC",PMingLiU,serif;font-size:19px;letter-spacing:.08em}.brand small{margin-top:3px;color:#f7f1df91;font-size:11px;letter-spacing:.17em}.source-link{display:inline-flex;gap:8px;align-items:center;color:#f7f1dfcc;font-size:14px;text-decoration:none}.source-link:hover{color:#fff}.hero__content{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(420px,.75fr);gap:72px;align-items:end;padding:78px 0 92px}.hero__kicker,.eyebrow{margin:0 0 12px;color:var(--gold);font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}.hero h1{margin:0;font-family:"Noto Serif TC",PMingLiU,serif;font-size:clamp(46px,6vw,78px);font-weight:600;line-height:1.13;letter-spacing:.025em}.hero h1 em{color:#e6c989;font-style:normal}.hero__description{max-width:620px;margin:28px 0 0;color:#f7f1dfab;font-size:16px;line-height:1.9}.stats{display:grid;grid-template-columns:repeat(3,1fr);margin:0;border-top:1px solid rgba(247,241,223,.18);border-bottom:1px solid rgba(247,241,223,.18)}.stats div{padding:23px 20px;border-right:1px solid rgba(247,241,223,.13)}.stats div:last-child{border-right:0}.stats dt{margin-bottom:9px;color:#f7f1df8a;font-size:12px}.stats dd{margin:0}.stats strong{margin-right:6px;color:#f3ddab;font-family:Georgia,serif;font-size:32px;font-weight:500}.stats span{color:#f7f1df85;font-size:11px}.main-content{position:relative;z-index:2;padding-bottom:80px}.control-bar{display:grid;grid-template-columns:minmax(430px,1.25fr) minmax(260px,.75fr) auto;gap:20px;align-items:end;margin-top:-30px;padding:22px;border:1px solid rgba(39,70,64,.1);border-radius:10px;background:#fffdf8f7;box-shadow:0 14px 45px #0b262221}.quick-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.quick-add label,.search-box label{grid-column:1 / -1;color:#65736f;font-size:12px;font-weight:700;letter-spacing:.08em}.quick-add select,.search-box input{width:100%;min-height:44px;border:1px solid #d2d7cf;border-radius:5px;color:var(--ink);background:#fff}.quick-add select{padding:0 38px 0 13px}.search-box{position:relative;display:grid;gap:10px}.search-box span{position:absolute;bottom:11px;left:13px;color:#7b8783}.search-box input{padding:0 12px 0 38px}.primary-button,.secondary-button,.text-button{border:0;cursor:pointer}.primary-button{min-height:44px;padding:0 22px;border-radius:5px;color:#fffdf7;background:var(--jade);font-weight:700}.primary-button:hover:not(:disabled){background:var(--jade-dark)}.control-actions{display:flex;gap:8px}.secondary-button{min-height:44px;padding:0 15px;border:1px solid #d3d7d0;border-radius:5px;color:#42504d;background:#fff;font-size:13px}.secondary-button:hover:not(:disabled){border-color:#9aaaa5;background:#f7f8f4}.secondary-button--danger{color:#955047}.session-note{display:flex;gap:9px;align-items:center;margin:18px 4px 36px;color:var(--muted);font-size:13px}.session-note__dot{width:7px;height:7px;border-radius:50%;background:var(--spring);box-shadow:0 0 0 4px #4a84621f}.panel{border:1px solid rgba(40,68,62,.11);border-radius:10px;background:var(--paper);box-shadow:var(--shadow)}.panel__heading{display:flex;gap:24px;align-items:end;justify-content:space-between;padding:28px 30px 22px;border-bottom:1px solid #e2e1d8}.panel__heading h2{margin:0;color:var(--ink);font-family:"Noto Serif TC",PMingLiU,serif;font-size:24px;font-weight:600;letter-spacing:.035em}.panel__hint{margin:0;color:#7b8582;font-size:12px}.season-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.season-block{min-width:0;padding:28px 30px 32px}.season-block:nth-child(odd){border-right:1px solid #e2e1d8}.season-block:nth-child(n+3){border-top:1px solid #e2e1d8}.season-block__heading{display:flex;align-items:center;margin-bottom:20px}.season-block__symbol{display:grid;width:42px;height:42px;margin-right:12px;place-items:center;border:1px solid currentColor;border-radius:50%;font-family:"Noto Serif TC",PMingLiU,serif;font-size:18px}.season-block__heading h3,.season-block__heading p{margin:0}.season-block__heading h3{color:#2e3f3a;font-family:"Noto Serif TC",PMingLiU,serif;font-size:17px}.season-block__heading p{margin-top:3px;color:#8a928e;font-size:11px}.season-block__count{margin-left:auto;color:#8b9591;font-family:Georgia,serif;font-size:13px}.season-block--spring .season-block__symbol,.text-spring{color:var(--spring)}.season-block--summer .season-block__symbol,.text-summer{color:var(--summer)}.season-block--autumn .season-block__symbol,.text-autumn{color:var(--autumn)}.season-block--winter .season-block__symbol,.text-winter{color:var(--winter)}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.card-chip{display:flex;min-width:0;min-height:39px;align-items:center;padding:7px 9px;border:1px solid #dedfd8;border-left:3px solid currentColor;border-radius:4px;color:#4c5c57;background:#fff;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.card-chip:hover{z-index:1;transform:translateY(-1px);box-shadow:0 5px 14px #16322c1a}.card-chip--spring{border-left-color:var(--spring)}.card-chip--summer{border-left-color:var(--summer)}.card-chip--autumn{border-left-color:var(--autumn)}.card-chip--winter{border-left-color:var(--winter)}.card-chip--played{border-color:var(--jade);color:#f9f7ef;background:var(--jade);box-shadow:inset 0 0 0 1px #ffffff14}.card-chip__mark{flex:0 0 auto;width:18px;color:#a9b2ae;font-size:11px}.card-chip--played .card-chip__mark{color:#f0d79f}.card-chip__name{min-width:0;overflow:hidden;font-size:13px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.card-chip__points{flex:0 0 auto;margin-left:auto;padding-left:7px;color:#ad7b2e;font-family:Georgia,serif;font-size:11px;font-weight:700}.card-chip--played .card-chip__points{color:#f0d79f}.insight-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:24px;margin-top:24px}.recommendation-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:24px}.recommendation-column{min-width:0;padding:0 10px;border-right:1px solid #e5e3da}.recommendation-column:last-child{border-right:0}.recommendation-column h3{margin:0 0 12px;font-family:"Noto Serif TC",PMingLiU,serif;font-size:18px;text-align:center}.recommendation-list{display:grid;gap:7px}.recommendation-list .card-chip{width:100%}.recommendation-column__empty{margin:12px 0;color:#9ba29f;font-size:11px;text-align:center}.core-tabs{display:flex;gap:7px;overflow-x:auto;padding:20px 22px 13px;scrollbar-width:thin}.core-tab{flex:0 0 auto;padding:8px 12px;border:1px solid #d8d9d1;border-radius:999px;color:#63716d;background:transparent;cursor:pointer;font-size:12px}.core-tab--active{border-color:var(--jade);color:#fff;background:var(--jade)}.core-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px 24px 24px}.combo-results{margin-top:24px}.combo-table-wrap{overflow-x:auto}.combo-table{width:100%;border-collapse:collapse;text-align:left}.combo-table th,.combo-table td{padding:15px 18px;border-bottom:1px solid #e7e5dd;vertical-align:middle}.combo-table thead th{color:#7b8581;background:#f8f6f0;font-size:11px;letter-spacing:.08em}.combo-table tbody th{min-width:150px;color:#344640;font-size:13px}.combo-table tbody td:nth-child(2){width:70px;color:var(--gold);font-family:Georgia,serif;text-align:center}.combo-table tbody td:nth-child(3){width:130px}.combo-row--complete{background:#f1f7f1}.complete-badge{display:inline-block;margin-left:7px;padding:2px 6px;border-radius:999px;color:#fff;background:var(--spring);font-size:9px;font-weight:700}.progress-label{display:inline-block;width:30px;color:#697671;font-size:11px}.progress-track{display:inline-block;width:68px;height:5px;overflow:hidden;border-radius:999px;background:#e2e3dc;vertical-align:middle}.progress-track span{display:block;height:100%;border-radius:inherit;background:var(--jade)}.combo-cards{display:flex;flex-wrap:wrap;gap:5px}.combo-card{padding:4px 7px;border:1px solid #dcded7;border-radius:3px;color:#58645f;background:#fff;cursor:pointer;font-size:11px}.combo-card--spring{border-bottom-color:var(--spring)}.combo-card--summer{border-bottom-color:var(--summer)}.combo-card--autumn{border-bottom-color:var(--autumn)}.combo-card--winter{border-bottom-color:var(--winter)}.combo-card--played{border-color:var(--jade);color:#fff;background:var(--jade)}.show-more{display:block;margin:20px auto;padding:8px 14px;color:var(--jade);background:transparent;font-size:13px;font-weight:700}.empty-state{display:flex;min-height:180px;gap:14px;align-items:center;justify-content:center;padding:30px;color:#87908d;text-align:center}.empty-state>span{color:#bd9b5d;font-family:Georgia,serif;font-size:34px}.empty-state p{margin:4px 0 0;font-size:13px;line-height:1.6}.empty-state--compact{min-height:236px}.site-footer{display:flex;justify-content:space-between;padding:28px 0 36px;border-top:1px solid rgba(41,70,64,.16);color:#7b8582;font-size:12px}.site-footer p{margin:0}@media(max-width:1120px){.hero__content{grid-template-columns:1fr;gap:44px}.stats{max-width:600px}.control-bar{grid-template-columns:1fr 1fr}.control-actions{grid-column:1 / -1;justify-content:flex-end}.insight-grid{grid-template-columns:1fr}}@media(max-width:820px){.topbar,.hero__content,.main-content,.site-footer{width:min(100% - 28px,720px)}.hero__content{padding:58px 0 76px}.control-bar{grid-template-columns:1fr}.control-actions{grid-column:auto}.season-grid{grid-template-columns:1fr}.season-block:nth-child(odd){border-right:0}.season-block:nth-child(n+2){border-top:1px solid #e2e1d8}.recommendation-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 0}.recommendation-column:nth-child(2){border-right:0}.combo-table th,.combo-table td{padding:13px 12px}}@media(max-width:560px){.topbar{padding:17px 0}.brand__seal{width:40px;height:40px}.brand strong{font-size:16px}.brand small,.source-link span{display:none}.hero h1{font-size:42px}.hero__description{font-size:14px}.stats div{padding:17px 9px}.stats strong{display:block;font-size:27px}.control-bar{margin-top:-24px;padding:16px}.quick-add{grid-template-columns:1fr}.panel__heading,.season-block{padding-right:18px;padding-left:18px}.panel__heading{align-items:start;flex-direction:column;gap:7px}.panel__heading h2{font-size:21px}.card-grid,.core-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.recommendation-grid{padding:18px 8px}.recommendation-column{padding:0 8px}.recommendation-list .card-chip__name{font-size:12px}.site-footer{flex-direction:column;gap:8px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card-chip{transition:none}}
