:root{--green:#102b22;--deep:#0b211a;--green2:#254f39;--gold:#d6a64e;--gold-light:#f7e1ac;--cream:#f8f4ea;--paper:#fffdf8;--text:#24342d;--muted:#78877b;--border:#e8e6dd;--soft:#eef2e9;--warn:#b55b32;--shadow:0 16px 48px #112b2212;--rad:18px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--text)}*{box-sizing:border-box}body{margin:0;background:var(--cream);font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{text-decoration:none;color:inherit}p{line-height:1.65}h1,h2,h3{line-height:1.19;letter-spacing:-.035em;margin:0}h1{font-size:clamp(30px,3.3vw,47px)}h2{font-size:24px}h3{font-size:17px}.tiny{font-size:11px}.small{font-size:12px}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:2px;text-transform:uppercase;font-weight:850;color:#af873e;margin-bottom:11px}.splash{height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px}.splash-mark{font-size:70px;color:var(--gold)}.splash h2{font-size:35px;color:var(--green)}.splash h2 span{color:#b28d44}.splash small{font-size:12px}.splash p{color:var(--muted)}
.shell{min-height:100dvh;display:grid;grid-template-columns:252px minmax(0,1fr)}.sidebar{background:var(--green);color:#d8e2d9;position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;padding:32px 18px}.logo{display:flex;align-items:center;gap:12px;color:white;font-weight:900;font-size:24px;letter-spacing:-1.2px;padding:6px 10px 37px}.logo small{display:block;color:var(--gold);letter-spacing:2px;font-size:9px;font-weight:800;margin-top:3px}.brandmark{width:40px;height:40px;background:linear-gradient(140deg,#e9bd65,#a47532);display:grid;place-items:center;border-radius:13px;color:var(--green);font-size:27px}.logo em{font-style:normal;color:var(--gold)}.side-label{font-size:10px;letter-spacing:2.3px;color:#8aa398;margin:5px 14px 13px}.nav-list{display:grid;gap:6px}.nav{width:100%;border:0;background:transparent;text-align:left;color:#c9d9cf;display:flex;align-items:center;gap:14px;padding:14px 15px;border-radius:11px;font-weight:650}.nav span{width:24px;font-size:21px;text-align:center;font-weight:400}.nav.active,.nav:hover{background:#275141;color:#ffdf91}.side-bottom{margin-top:auto;background:linear-gradient(145deg,#275240,#183b30);border:1px solid #37644d;border-radius:17px;padding:17px}.side-bottom .emoji{font-size:38px;display:block;margin-bottom:12px}.side-bottom strong{display:block;color:#fff;font-size:15px}.side-bottom small{line-height:1.5;color:#b0c5b8;display:block;margin-top:8px}.side-version{font-size:10px;color:#91aa9d;margin-top:21px;text-align:center}.main{min-width:0}.topbar{height:77px;border-bottom:1px solid var(--border);background:#ffffffb8;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,3vw,48px)}.topbrand{display:none;font-weight:900;font-size:18px;color:var(--green)}.topbrand em{font-style:normal;color:#bc903d}.top-right{display:flex;align-items:center;gap:15px}.pill{background:#e7efe5;color:#40624c;border:1px solid #d2e1d2;border-radius:40px;padding:8px 13px;font-size:11px;font-weight:700}.account{background:#f0ece0;width:38px;height:38px;border:0;border-radius:50%;display:grid;place-items:center;color:var(--green);font-size:18px}.content{padding:33px clamp(20px,3vw,48px) 75px;max-width:1480px;margin:auto}.view-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:26px}.view-head p{margin:9px 0 0;color:var(--muted)}.hero{background:radial-gradient(circle at 85% 35%,#3a6448 0,#1b4531 37%,#102b22 73%);color:#fff;border-radius:25px;min-height:304px;position:relative;overflow:hidden;padding:46px 48px;display:flex;justify-content:space-between;gap:15px}.hero:after{content:'✦';position:absolute;font-size:280px;color:#ffffff0a;right:4%;top:-95px;transform:rotate(17deg)}.hero .eyebrow{color:#eac783}.hero h1{max-width:600px;font-family:Georgia,serif;font-weight:500;font-size:clamp(32px,3.7vw,56px);letter-spacing:-1px;z-index:1;position:relative}.hero h1 em{color:#f0c978;font-weight:400}.hero p{color:#d3e1d6;max-width:510px;margin:14px 0 0}.hero-progress{min-width:170px;align-self:center;text-align:center;z-index:1}.progress-ring{width:148px;height:148px;border-radius:50%;background:conic-gradient(var(--gold) var(--pct),#567462 var(--pct));display:grid;place-items:center;margin:0 auto 10px}.progress-ring>div{background:#18412f;width:119px;height:119px;border-radius:50%;display:grid;place-items:center;align-content:center}.progress-ring strong{font-size:36px;color:white}.progress-ring small{font-size:11px;color:#b4d0b8}.hero-progress p{margin:7px 0;font-size:12px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:32px 0 17px}.section-title h2{font-size:23px}.link{color:#327252;font-weight:750;background:none;border:0;padding:5px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:22px}.stat{background:var(--paper);border:1px solid var(--border);border-radius:16px;padding:20px 22px;box-shadow:0 3px 12px #102b2205}.stat .ico{font-size:22px;background:#f1f2e8;border-radius:11px;width:42px;height:42px;display:grid;place-items:center;margin-bottom:11px}.stat strong{font-size:28px;color:var(--green);display:block;letter-spacing:-1px}.stat small{color:var(--muted);font-size:12px}.quick{display:flex;flex-wrap:wrap;gap:10px}.quick .btn{border-radius:40px}.searchbox{display:flex;align-items:center;gap:12px;background:white;padding:11px 14px;border-radius:13px;border:1px solid var(--border);flex:1;min-width:200px}.searchbox span{font-size:22px;color:#a6a69b}.searchbox input{outline:0;border:0;background:transparent;width:100%;color:var(--text)}.btn{border-radius:11px;padding:12px 17px;border:1px solid var(--border);background:var(--paper);color:var(--green);font-weight:750;display:inline-flex;justify-content:center;align-items:center;gap:8px;white-space:nowrap}.btn:hover,.link:hover{filter:brightness(.94)}.btn.primary{background:var(--green);color:white;border-color:var(--green)}.btn.gold{background:var(--gold);border-color:var(--gold);color:#2b2a1d}.btn.soft{background:#f2f1e8}.btn.danger{color:#a43c30;border-color:#f3d5ce;background:#fff5f2}.btn.wide{width:100%}.toolbar{padding:19px;display:flex;flex-direction:column;gap:13px;background:var(--paper);border:1px solid var(--border);border-radius:17px}.filters{display:flex;flex-wrap:wrap;gap:10px}.filters select,.filters input{padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#fff;min-width:135px;flex:1;color:var(--text)}.filters input{flex:2}.catalog-meta{color:var(--muted);font-size:12px}.beer-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.beer-card{background:var(--paper);border:1px solid var(--border);overflow:hidden;border-radius:17px;box-shadow:0 3px 13px #182b2010;cursor:pointer;transition:transform .18s,box-shadow .18s;min-width:0}.beer-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.beer-visual{height:198px;position:relative;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at center 75%,#e5d5ae,#f3eee2 65%)}.beer-card:nth-child(3n+1) .beer-visual{background:radial-gradient(circle at center 72%,#e2ded1,#f4f2ea 70%)}.beer-card:nth-child(3n+2) .beer-visual{background:radial-gradient(circle at center 72%,#d8e4d6,#eff3eb 70%)}.beer-photo{height:87%;width:84%;object-fit:contain;display:block;position:absolute;inset:7% 8%;filter:drop-shadow(0 10px 10px #1322182c)}.fallback-visual{width:88px;height:155px;position:relative;display:flex;justify-content:center;align-items:center;filter:drop-shadow(0 9px 8px #50412b30)}.bottle{width:64px;height:119px;background:linear-gradient(90deg,#173d27,#447651 24%,#1b4d30 72%,#112c1c);border-radius:14px 14px 13px 13px;position:absolute;bottom:0;display:flex;justify-content:center;align-items:center}.bottle:before{content:'';position:absolute;bottom:100%;height:29px;width:22px;background:linear-gradient(90deg,#113624,#29573b,#113624);border-radius:4px 4px 0 0}.bottle:after{content:'';position:absolute;bottom:calc(100% + 25px);height:8px;width:26px;background:#c59b52;border-radius:4px 4px 1px 1px}.bottle span{background:#d2b46c;color:#355441;width:57px;height:62px;display:grid;place-items:center;text-align:center;font-family:Georgia,serif;font-size:12px;letter-spacing:1px;border:3px double #f6dba3}.can{width:79px;height:136px;background:linear-gradient(90deg,#a5b2b0,#f5f3d6 15%,#d3dbd3 50%,#939d9a);border-radius:10px 10px 9px 9px;position:absolute;bottom:0;display:grid;place-items:center}.can:before,.can:after{content:'';position:absolute;background:#b1b9b4;width:100%;height:8px;left:0;border-radius:50%}.can:before{top:-3px}.can:after{bottom:-3px}.can span{width:72px;height:86px;background:#295541;color:#e9d199;font-family:Georgia,serif;letter-spacing:1px;display:grid;place-items:center;font-size:13px;border:2px solid #d1ae6d}.beer-id{position:absolute;z-index:2;top:13px;left:14px;font-size:10px;letter-spacing:1px;color:#657e6c;font-weight:900}.beer-wish{position:absolute;z-index:3;right:11px;top:9px;width:32px;height:32px;border-radius:50%;border:1px solid #ffffffaa;background:#ffffffd8;color:#6c8170;font-size:19px}.beer-wish.on{color:#ca5344}.beer-card-body{padding:16px}.beer-card h3{font-size:15px;min-height:38px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.beer-card p{font-size:12px;color:#849087;margin:7px 0 12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:5px}.tag{display:inline-block;border-radius:25px;background:#eeeae0;padding:5px 9px;color:#68766c;font-size:10px;font-weight:750}.tag.tasted{color:#26744a;background:#e5f3e8}.tag.wish{color:#a26236;background:#fff1db}.score{font-size:12px;color:#bd8a31}.placeholder{background:var(--paper);border:1px dashed #d8dccc;border-radius:15px;padding:29px;text-align:center;color:var(--muted)}.placeholder strong{display:block;color:var(--green);margin-bottom:7px}.loadmore{text-align:center;margin:25px 0 15px}.photo-pill{position:absolute;right:10px;bottom:10px;background:#ffffffe0;border:1px solid #e3dfd5;border-radius:25px;font-size:9px;padding:5px 8px;color:#477358;z-index:1}.country-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.country-card{background:var(--paper);border:1px solid var(--border);padding:16px;border-radius:14px;text-align:left;cursor:pointer}.country-card strong{display:block;font-size:12px;margin-top:8px;line-height:1.4}.country-card .flag{font-size:24px}.country-card small{font-size:10px;color:var(--muted)}
.modal-wrap{position:fixed;inset:0;background:#0a1b14b8;z-index:100;display:grid;place-items:center;padding:20px;overflow:auto}.dialog{max-height:min(90dvh,950px);overflow:auto;width:min(760px,100%);background:var(--paper);border-radius:22px;box-shadow:0 30px 100px #0007}.dialog.narrow{width:min(530px,100%)}.dialog-head{padding:23px 26px 15px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border)}.dialog-head strong{font-size:20px;line-height:1.2}.icon-btn{background:transparent;border:0;font-size:26px;color:var(--muted);padding:3px 8px}.dialog-body{padding:24px 26px 27px}.detail-hero{display:grid;grid-template-columns:240px 1fr;gap:25px}.detail-photo{min-height:280px;background:radial-gradient(circle at center 75%,#d6d2bd,#eeeee5 72%);border-radius:18px;position:relative;display:grid;place-items:center}.detail-photo .beer-photo{height:87%}.detail-photo .fallback-visual{transform:scale(1.4)}.detail-info h2{font-size:29px;margin:7px 0}.detail-info p{margin:5px 0;color:var(--muted)}.detail-metrics{display:flex;gap:12px;margin:23px 0}.metric{background:#edf0e7;border-radius:12px;padding:12px 18px;min-width:80px}.metric strong{display:block;font-size:18px;color:var(--green)}.metric small{color:var(--muted);font-size:10px;text-transform:uppercase}.credit{font-size:11px;color:var(--muted);line-height:1.5}.credit a{text-decoration:underline;color:var(--green2)}.detail-desc{border-top:1px solid var(--border);margin-top:23px;padding-top:20px}.detail-desc h3{margin:0 0 9px}.detail-desc p{color:#626f66;white-space:pre-wrap}.detail-actions{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}.form-grid{display:grid;gap:14px}.form-grid label,.install-form label{display:grid;gap:6px;font-size:12px;font-weight:750;color:#415247}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid input,.form-grid select,.form-grid textarea,.install-form input{width:100%;border:1px solid #dce2d8;background:#fff;border-radius:10px;padding:12px;outline:none;font-weight:400;color:var(--text)}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#90b09b;box-shadow:0 0 0 3px #90b09b33}.form-grid textarea{min-height:100px;resize:vertical}.form-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end;margin-top:7px}.form-grid h3{margin:12px 0 0}.checkrow{display:flex;align-items:center;gap:8px}.checkrow input{width:auto}.alert{background:#f2eee3;border:1px solid #e6dac6;border-radius:12px;padding:13px 15px;font-size:12px;line-height:1.5}.alert.error{background:#fff1ef;color:#a03f32;border-color:#f6d1ca}.alert.success{background:#e8f6e9;color:#28623e;border-color:#d1ead1}.section-panel{background:var(--paper);border:1px solid var(--border);border-radius:17px;padding:23px;margin-top:16px}.section-panel h3{margin-bottom:9px}.section-panel p{color:var(--muted);font-size:12px}.journal-list{display:grid;gap:12px}.journal-item{background:var(--paper);border:1px solid var(--border);padding:14px;display:flex;gap:15px;align-items:center;border-radius:15px}.journal-pic{width:72px;height:80px;flex:none;border-radius:12px;position:relative;background:#eef1e8;display:grid;place-items:center;overflow:hidden}.journal-pic .beer-photo{height:84%}.journal-pic .fallback-visual{transform:scale(.43)}.journal-info{flex:1;min-width:0}.journal-info strong{display:block;font-size:14px}.journal-info p{margin:5px 0;color:var(--muted);font-size:12px}.badges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.badge-card{border:1px solid var(--border);border-radius:15px;padding:17px;background:#f0efe7;text-align:center;opacity:.52}.badge-card.unlocked{background:var(--paper);opacity:1;border-color:#e9d8ab}.badge-card .medal{font-size:34px;margin-bottom:8px}.badge-card strong{font-size:12px;display:block}.badge-card small{font-size:11px;color:var(--muted)}.profile-hero{background:linear-gradient(120deg,#112e24,#2e6548);padding:30px;border-radius:20px;color:white;display:flex;align-items:center;gap:22px}.profile-icon{width:72px;height:72px;border-radius:50%;background:#d6ae5f;color:#163325;display:grid;place-items:center;font-size:35px}.profile-hero p{margin:5px 0;color:#b8cebc}.progress{height:9px;border-radius:15px;background:#e7eae0;overflow:hidden;margin-top:12px}.progress>div{height:100%;background:var(--gold);border-radius:15px}.profile-hero .progress{background:#47755b}.admin-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:23px 0}.admin-tabs .btn.active{background:var(--green);color:white}.table-wrap{overflow:auto;border-radius:15px;border:1px solid var(--border);background:var(--paper)}table{width:100%;border-collapse:collapse;text-align:left;min-width:600px}th{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#829085;background:#f3f4ec}th,td{padding:14px 15px;border-bottom:1px solid var(--border)}td{font-size:12px}tr:last-child td{border-bottom:0}.inline-actions{display:flex;flex-wrap:wrap;gap:7px}.inline-actions .btn{padding:7px 10px;font-size:11px}.admin-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0}.admin-tools .searchbox{max-width:370px}.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.admin-stats .stat{margin:0}.admin-stats .stat strong{font-size:23px}.toast{position:fixed;right:22px;bottom:24px;z-index:220;background:var(--green);color:white;max-width:340px;border-radius:13px;padding:13px 18px;box-shadow:var(--shadow);opacity:0;transform:translateY(16px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}.mobile-nav{display:none}.login-screen{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr}.login-art{background:radial-gradient(circle at 70% 50%,#376746,#102b22 66%);display:flex;align-items:center;justify-content:center;color:#fff;padding:9%;position:relative;overflow:hidden}.login-art:after{content:'◈';font-size:340px;position:absolute;color:#ffffff09;right:-80px;bottom:-90px}.login-art h1{font-family:Georgia,serif;font-size:clamp(42px,4.5vw,71px);font-weight:500;max-width:540px}.login-art h1 em{color:#e4bd68}.login-art p{color:#c9dece;max-width:450px}.login-logo{color:#e4bd68;font-size:26px;font-weight:850;margin-bottom:44px}.login-logo span{color:#fff}.login-form-wrap{display:grid;place-items:center;padding:25px}.login-panel{width:min(420px,100%)}.login-panel h2{font-size:32px;margin-bottom:9px}.login-panel>p{color:var(--muted);margin-bottom:27px}.login-panel .form-grid{gap:16px}.login-switch{border:0;background:none;color:var(--green2);font-weight:800;text-decoration:underline}.login-footer{margin-top:22px;font-size:12px;color:var(--muted)}.install-body{background:linear-gradient(135deg,#102b22 0%,#25583b 50%,#e9d8af 50%,#f8f4ea 100%);min-height:100dvh}.install-wrap{width:min(650px,95%);margin:0 auto;padding:50px 0}.install-brand{font-size:29px;font-weight:900;color:white;margin-bottom:20px}.install-brand span{color:#e7b96b}.install-brand small{font-size:13px}.install-box{padding:36px;background:var(--paper);border-radius:23px;box-shadow:var(--shadow)}.install-box>p{color:var(--muted)}.install-form{display:grid;gap:13px}.install-form h3{margin:19px 0 4px}.install-box .btn{margin-top:12px}
@media(max-width:1200px){.beer-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.country-strip{grid-template-columns:repeat(3,1fr)}}@media(max-width:960px){.shell{grid-template-columns:1fr}.sidebar{display:none}.topbrand{display:block}.content{padding-bottom:120px}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:80;background:var(--green);color:white;padding:9px 7px max(9px,env(safe-area-inset-bottom));box-shadow:0 -6px 26px #06180f33;justify-content:space-around}.mobile-nav button{border:0;color:#bed1c5;background:transparent;min-width:60px;padding:6px 9px;display:grid;gap:2px;place-items:center}.mobile-nav button.active{color:#f3d084}.mobile-nav button span{font-size:23px}.mobile-nav button small{font-size:10px}.hero{min-height:260px}.stat-grid{grid-template-columns:repeat(2,1fr)}.beer-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.topbar{padding:0 24px}}@media(max-width:650px){.content{padding:20px 15px 110px}.topbar{height:64px;padding:0 17px}.top-right .pill{display:none}.hero{display:block;padding:27px 23px;min-height:300px}.hero h1{font-size:35px}.hero-progress{display:flex;gap:13px;align-items:center;text-align:left;margin-top:22px}.progress-ring{width:82px;height:82px;margin:0}.progress-ring>div{width:65px;height:65px}.progress-ring strong{font-size:21px}.progress-ring small{font-size:8px}.stat-grid{gap:9px;margin-top:12px}.stat{padding:15px}.stat strong{font-size:23px}.beer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.beer-card h3{font-size:13px;min-height:32px}.beer-card-body{padding:12px}.beer-visual{height:174px}.beer-card p{font-size:11px}.filters select,.filters input{min-width:calc(50% - 6px)}.view-head h1{font-size:30px}.country-strip{grid-template-columns:repeat(2,1fr)}.detail-hero{grid-template-columns:1fr}.detail-photo{height:240px;min-height:0}.detail-info h2{font-size:24px}.dialog-body{padding:19px}.dialog-head{padding:19px}.field-pair{grid-template-columns:1fr}.badges{grid-template-columns:repeat(2,1fr)}.admin-stats{grid-template-columns:repeat(2,1fr)}.login-screen{grid-template-columns:1fr}.login-art{min-height:220px;padding:30px}.login-art h1{font-size:30px}.login-logo{margin-bottom:14px}.login-form-wrap{padding:28px 21px}.login-panel h2{font-size:27px}.profile-hero{padding:20px;gap:15px}.profile-icon{width:55px;height:55px}.install-box{padding:23px}.install-wrap{padding:20px 0}.journal-pic{width:55px;height:68px}.journal-item{padding:11px}}
