:root{--bg:#f6f2eb;--paper:#fffdf8;--ink:#333b32;--muted:#7c8076;--green:#526c50;--line:#e4e5d9;--peach:#ebd0ba}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:18px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif}button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:0}button:focus-visible,a:focus-visible{outline:3px solid #b48d5b;outline-offset:3px}.app{max-width:940px;margin:auto;padding:30px 28px 120px}header{display:flex;align-items:center;justify-content:space-between;padding-bottom:26px}.logo{text-decoration:none;color:var(--ink);font-size:26px;font-weight:750;letter-spacing:2px}.header-note,footer{color:var(--muted);font-size:16px}nav{display:flex;border-bottom:1px solid var(--line);gap:28px;margin-bottom:32px}nav button{padding:10px 0 15px;background:none;color:var(--muted);border-bottom:3px solid transparent}nav button.active{color:var(--green);border-color:var(--green);font-weight:650}h1{font-size:32px;margin:0;letter-spacing:-1px}h2{font-size:22px;margin:0 0 18px}h3{font-size:19px;margin:0 0 14px}.intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.eyebrow{color:var(--green);font-size:16px;margin:0 0 7px}.intro p{color:var(--muted);margin:6px 0}.date-tag{padding:8px 14px;background:#e8ebdf;border-radius:30px;color:var(--green);font-size:16px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0 32px}.metric{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:23px}.metric:first-child{background:#e4ebdc;border-color:#d9e2d0}.metric:nth-child(2){background:#f1e3d5;border-color:#eadbcb}.metric-label{font-size:16px;color:#626b5c}.value{font-size:36px;font-weight:700;margin:9px 0 3px;line-height:1.3}.value.brand{font-size:27px;overflow-wrap:anywhere}.unit{font-size:17px;font-weight:400;margin-left:5px}.sub{font-size:15px;color:var(--muted)}.section-head{display:flex;align-items:center;justify-content:space-between;margin:24px 0 16px}.section-head h2{margin:0}.pill{font-size:15px;padding:5px 10px;background:#e9e8df;border-radius:20px;color:#74796d}.records,.panel{background:var(--paper);border:1px solid var(--line);border-radius:18px;overflow:hidden}.record{width:100%;display:flex;align-items:center;gap:15px;text-align:left;padding:20px;background:none;border-bottom:1px solid var(--line);color:var(--ink)}.record:last-child{border-bottom:0}.record:hover{background:#f4f5ed}.drink-icon{width:45px;height:49px;border-radius:12px;background:#eee5d7;color:#92775a;display:grid;place-items:center;font-size:27px;flex:none}.record-main{flex:1;min-width:0}.record-title{font-weight:650;overflow-wrap:anywhere}.record-detail{color:var(--muted);font-size:16px;margin-top:3px}.record-right{text-align:right;flex:none;font-size:17px}.stars{color:#ab814d;font-size:16px}.empty{text-align:center;padding:48px 22px}.empty .empty-cup{font-size:48px;color:#9da98d}.empty h3{margin:8px 0}.empty p{color:var(--muted);font-size:16px;margin:0}.add{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);padding:15px 36px;border-radius:50px;background:var(--green);color:white;font-weight:650;box-shadow:0 6px 22px #526c5030;z-index:5}.panel{padding:24px;margin-bottom:18px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid .panel{margin:0}.filter{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}.filter button,.chip{background:#ecebe2;color:#646d5f;padding:8px 14px;border-radius:20px;font-size:16px}.filter button.active{background:var(--green);color:white}.custom-range{display:flex;gap:12px;margin-bottom:18px}.custom-range label{flex:1}.bar-row{margin:15px 0}.bar-label{display:flex;justify-content:space-between;gap:12px;font-size:16px;margin-bottom:6px;overflow-wrap:anywhere}.bar-track{height:8px;background:#edeee5;border-radius:5px;overflow:hidden}.bar{height:100%;background:#8da07a;border-radius:5px}.week{display:flex;align-items:flex-end;gap:9px;height:150px;padding-top:20px}.week-col{flex:1;text-align:center;font-size:15px;color:var(--muted)}.week-bar{background:#aab99a;border-radius:7px 7px 0 0;margin:5px auto;width:70%;min-height:3px}.rank{display:flex;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);font-size:16px}.rank:last-child{border:0}.rank small{display:block;color:var(--muted);font-size:15px}.rank strong{color:var(--green);white-space:nowrap}.actions{display:flex;gap:10px;flex-wrap:wrap}.primary,.secondary{padding:12px 20px;border-radius:12px;font-weight:600}.primary{background:var(--green);color:white}.secondary{background:#eaece1;color:var(--green)}.panel p{color:var(--muted);font-size:16px}.notice{background:#f2e2cd;border-radius:12px;padding:12px 16px;color:#866239;font-size:16px;margin-bottom:18px}footer{text-align:center;margin-top:32px}label{display:block;font-size:16px;font-weight:600;margin-bottom:16px}label span{font-weight:400;color:var(--muted);font-size:15px}input,select{width:100%;padding:12px;border:1px solid #d9ded0;border-radius:10px;background:#fffefb;color:var(--ink);margin-top:6px;min-height:48px}input:focus{outline:2px solid #aab99a}dialog{width:min(500px,calc(100% - 24px));max-height:90dvh;overflow:auto;border:1px solid var(--line);border-radius:24px;background:var(--paper);padding:26px;color:var(--ink)}dialog::backdrop{background:#29352a60;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.dialog-head h2{margin:0}.icon-button{font-size:30px;background:none;color:var(--muted);width:40px;height:40px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.input-wrap{position:relative}.input-wrap b{position:absolute;left:13px;top:17px;color:var(--muted)}.input-wrap input{padding-left:32px}.rating-buttons{display:flex;gap:7px;align-items:center;margin-bottom:24px;font-size:15px}.rating-buttons span{color:var(--muted);margin-right:auto}.rating-buttons button{background:#f1e6d5;color:#977044;border-radius:8px;padding:8px}.rating-buttons button.selected{background:#9a784d;color:white}form>.primary{width:100%}.danger{background:none;color:#a05d4c;width:100%;padding:12px;margin-top:8px}#recent{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:18px}#recent .chip{font-size:14px;padding:7px 10px}#toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%);background:#333b32;color:white;padding:12px 20px;border-radius:12px;z-index:20;max-width:90%;display:none}.muted{color:var(--muted);font-size:16px}.overview{display:flex;flex-wrap:wrap;gap:24px}.overview strong{font-size:27px;display:block}.overview span{font-size:15px;color:var(--muted)}@media(max-width:600px){.app{padding:22px 18px 110px}header{padding-bottom:20px}.header-note{font-size:14px}nav{gap:25px;margin-bottom:26px}h1{font-size:28px}.date-tag{font-size:14px;padding:6px 10px}.metrics{gap:8px;margin:20px 0 27px}.metric{padding:15px 11px;border-radius:14px}.value{font-size:31px}.value.brand{font-size:21px}.metric-label{font-size:15px}.sub{font-size:14px}.grid{grid-template-columns:1fr}.panel{padding:20px}.record{padding:17px 14px;gap:11px}.record-title{font-size:17px}.record-detail{font-size:15px}.drink-icon{width:39px;height:44px}.record-right{font-size:16px}.intro p{font-size:16px}dialog{padding:22px}.rating-buttons{gap:5px}.rating-buttons button{padding:8px}.custom-range{gap:8px}.fields{gap:10px}}@media(prefers-reduced-motion:no-preference){.record,.chip,button{transition:background .15s ease}dialog[open]{animation:appear .18s ease}@keyframes appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}}

.periods{display:grid;gap:20px}.period-overview{padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--paper)}.period-overview:first-child{background:#e4ebdc;border-color:#d9e2d0}.period-overview:nth-child(2){background:#f1e3d5;border-color:#eadbcb}.period-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.period-heading h2{margin:0}.period-heading>span{font-size:15px;color:var(--muted)}.period-metrics{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}.period-metric{min-width:0}.period-metric+.period-metric{border-left:1px solid #333b321a;padding-left:20px}.period-metric .value{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.currency{font-size:20px;margin-right:4px}.period-note{font-size:14px;color:var(--muted);margin:14px 0 0}@media(max-width:600px){.periods{gap:16px}.period-overview{padding:20px 16px}.period-heading{margin-bottom:16px}.period-metrics{gap:14px}.period-metric+.period-metric{padding-left:14px}.period-metric .value{font-size:30px}.period-heading>span{font-size:14px}}
.rank-number{display:inline-block;margin-right:10px;color:var(--green);font-weight:700}.rank>div{min-width:0;overflow-wrap:anywhere}.panel .ranking-note{font-size:14px;margin:18px 0 0}
.chart-scroll{overflow-x:auto;overscroll-behavior-x:contain}.chart-scroll svg{display:block;width:100%;min-width:640px;height:auto}.chart-grid{stroke:var(--line);stroke-width:1}.chart-axis{fill:var(--muted);font-size:14px}.chart-count{fill:var(--green);font-size:15px;font-weight:650}.chart-line{fill:none;stroke:var(--green);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-point{fill:var(--paper);stroke:var(--green);stroke-width:3}.panel .chart-help{font-size:14px;margin:12px 0 0}@media(max-width:600px){.monthly-chart .period-heading{align-items:flex-start;flex-wrap:wrap}.chart-scroll{margin-right:-8px}}
.all-records{margin-top:24px;border:1px solid var(--line);border-radius:18px;background:var(--paper);overflow:hidden}.all-records summary{padding:20px 24px;cursor:pointer;font-size:20px;font-weight:650;color:var(--ink)}.all-records summary::marker{color:var(--green)}.all-records summary .pill{float:right;margin-left:12px;font-weight:400}.all-records summary:focus-visible{outline:3px solid #b48d5b;outline-offset:-4px}.all-records[open] summary{border-bottom:1px solid var(--line)}.all-records .records{border:0;border-radius:0}@media(max-width:600px){.all-records summary{padding:18px 16px}}
.record-number{flex:none;min-width:28px;color:var(--muted);text-align:center;font-size:16px;font-variant-numeric:tabular-nums}.record-title{display:block}.record-right .stars{justify-content:flex-end;align-items:center;gap:5px}.rating-star{width:19px;height:19px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}@media(max-width:600px){.record-number{min-width:24px;font-size:15px}.record-title{font-size:16px}.record-right{font-size:15px}}
.brand-name{font-weight:750}.brand-color-0{color:#426744}.brand-color-1{color:#8b5138}.brand-color-2{color:#49658a}.brand-color-3{color:#805279}.brand-color-4{color:#27716e}.brand-color-5{color:#85651e}.brand-color-6{color:#9b4b5a}.brand-color-7{color:#675c96}
#toast{top:50%;bottom:auto;transform:translate(-50%,-50%);text-align:center;line-height:1.6;box-shadow:0 12px 38px #333b3226}#toast.celebration{width:340px;max-width:calc(100% - 40px);padding:26px 22px 28px;border-radius:28px;background:#fff8ed;color:var(--ink);border:2px solid #e9d5bf;box-shadow:0 16px 48px #526c5033}.toast-title{display:block;color:var(--green);font-size:23px;line-height:1.5}.toast-caption{display:block;color:#92725b;font-size:16px;margin-top:12px}@media(prefers-reduced-motion:no-preference){#toast.celebration{animation:toast-pop .24s ease-out}@keyframes toast-pop{from{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}}