:root{--bg:#131B30;--surface:#1C2640;--surface2:#243056;--border:rgba(255,255,255,.08);--border2:rgba(255,255,255,.16);--text:#EDE8DF;--text2:#8B9DB8;--text3:#546078;--green:#22D3EE;--green-light:rgba(34,211,238,.15);--green-text:#A0EEFA;--wine:#E07090;--wine-light:rgba(224,112,144,.15);--wine-text:#F5B0C0;--hol:#9D96E8;--hol-light:rgba(157,150,232,.2);--red:#E05858;--red-light:rgba(224,88,88,.15);--r:14px;--rs:8px}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{font-family:DM Sans,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5;min-height:100vh}.auth-wrapper{position:fixed;top:0;right:0;bottom:0;left:0;background:#131b30;z-index:300;display:flex;align-items:center;justify-content:center;padding:24px;flex-direction:column;gap:24px}.auth-logo-row{display:flex;align-items:center;gap:8px;font-family:"DM Serif Display",serif;font-size:32px;color:#fff}.auth-logo-row span{color:#ffffffe6}.auth-sub{font-size:14px;color:#ffffff73}#loading{position:fixed;top:0;right:0;bottom:0;left:0;background:#131b30;display:none;align-items:center;justify-content:center;flex-direction:column;gap:14px;z-index:200}#loading.show{display:flex}#spinner{width:36px;height:36px;border:2.5px solid rgba(255,255,255,.15);border-top-color:var(--green);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#spin-txt{font-size:14px;color:#ffffff73}#toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%);background:var(--text);color:#fff;padding:11px 20px;border-radius:20px;font-size:13px;font-weight:500;z-index:999;opacity:0;transition:opacity .2s;white-space:nowrap;pointer-events:none}#toast.show{opacity:1}#toast.err{background:var(--red)}#toast.ok{background:var(--green)}#hdr{background:var(--surface);border-bottom:1px solid var(--border);padding:14px 16px;position:sticky;top:0;z-index:50}#hdr-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}#hdr-page-title{font-family:"DM Serif Display",serif;font-size:17px;color:var(--text);text-align:center}.back-home-btn{font-family:"DM Serif Display",serif;font-size:20px;color:var(--text);background:none;border:none;cursor:pointer;padding:0;justify-self:start;letter-spacing:.01em}.hdr-gear-btn{width:32px;height:32px;border-radius:50%;border:none;background:var(--surface2);color:var(--text3);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:17px;justify-self:end}.hdr-gear-btn:hover{color:var(--text2)}.hdr-gear-spacer{width:32px;justify-self:end}.page{display:none}.page.on{display:block}.main{padding:16px 16px 120px;max-width:480px;margin:0 auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:16px;margin-bottom:12px}.clabel{font-size:11px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--text3);margin-bottom:12px}.field{margin-bottom:12px}.field:last-child{margin-bottom:0}.field label{display:block;font-size:12px;font-weight:500;color:var(--text2);margin-bottom:5px}.field input,.field select,.field textarea{width:100%;padding:11px 13px;border:1px solid var(--border2);border-radius:var(--rs);font-size:15px;font-family:inherit;background:var(--surface);color:var(--text);-webkit-appearance:none;transition:border-color .15s}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--green)}.field textarea{min-height:72px;resize:vertical}.fields-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.fields-row .field{margin:0}.btn{width:100%;padding:15px;border:none;border-radius:var(--rs);font-size:15px;font-weight:500;font-family:inherit;cursor:pointer;transition:opacity .15s}.btn:active{opacity:.8}.btn:disabled{opacity:.4}.btn-green{background:var(--green);color:#fff;margin-top:4px}.btn-wine{background:var(--wine);color:#fff;margin-top:4px}.btn-ghost{background:none;border:1px solid var(--border2);color:var(--text2);margin-top:8px}.btn-red{background:none;border:1px solid var(--red);color:var(--red);margin-top:8px}.lib-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.lib-title{font-family:"DM Serif Display",serif;font-size:20px}.lib-add-btn{border:none;border-radius:20px;padding:8px 16px;font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;background:var(--green);color:#fff}.lib-add-btn.wine-add{background:var(--wine)}.lib-search-wrap{position:relative;margin-bottom:12px}.lib-search{width:100%;padding:11px 13px;border:1px solid var(--border2);border-radius:var(--rs);font-size:15px;font-family:inherit;background:var(--surface);color:var(--text);-webkit-appearance:none}.lib-search:focus{outline:none;border-color:var(--green)}.lib-empty{text-align:center;padding:48px 20px;color:var(--text3);font-size:14px}.back-btn{display:flex;align-items:center;gap:5px;background:none;border:none;font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;padding:0;margin-bottom:16px;color:var(--green)}.back-btn.wine-back{color:var(--wine)}.rec-tag{display:inline-block;background:var(--green-light);color:var(--green-text);font-size:11px;font-weight:500;padding:2px 8px;border-radius:10px}.rec-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px 16px;margin-bottom:10px;cursor:pointer}.rec-card-name{font-size:16px;font-weight:500;margin-bottom:5px}.rec-card-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.rec-meta-item{font-size:12px;color:var(--text3)}.rec-card-macros{margin-top:7px;display:flex;gap:12px}.rec-macro{font-size:12px;color:var(--text2)}.rec-macro strong{color:var(--text);font-weight:500}.rec-detail-name{font-family:"DM Serif Display",serif;font-size:24px;margin-bottom:6px;line-height:1.2}.rec-detail-desc{font-size:14px;color:var(--text2);margin-bottom:14px;line-height:1.6}.rec-detail-meta{display:flex;gap:20px;margin-bottom:4px;flex-wrap:wrap}.rec-detail-meta-item .val{font-size:20px;font-weight:500}.rec-detail-meta-item .lbl{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.05em}.rec-ing-list{list-style:none}.rec-ing-list li{padding:8px 0;border-bottom:1px solid var(--border);font-size:14px;display:flex;gap:10px}.rec-ing-list li:last-child{border-bottom:none}.rec-ing-amount{font-weight:500;min-width:80px;color:var(--text2)}.rec-method{font-size:14px;line-height:1.8;color:var(--text);white-space:pre-wrap}.rec-macros-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.rec-macro-cell{text-align:center;background:var(--surface2);border-radius:var(--rs);padding:10px 4px}.rec-macro-cell .val{font-size:18px;font-weight:500;color:var(--green-text)}.rec-macro-cell .lbl{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.05em}.rec-actions{display:flex;gap:10px;margin-top:4px}.rec-actions .btn{flex:1;margin:0}.ing-rows{display:flex;flex-direction:column;gap:8px}.ing-row{display:flex;gap:6px;align-items:center}.ing-row input{flex:1;padding:9px 10px;border:1px solid var(--border2);border-radius:var(--rs);font-size:14px;font-family:inherit;background:var(--surface);color:var(--text)}.ing-row input:focus{outline:none;border-color:var(--green)}.ing-row input.ing-amount{flex:0 0 58px;text-align:center}.ing-row input.ing-unit{flex:0 0 62px}.ing-rm{width:30px;height:30px;flex-shrink:0;border-radius:50%;border:1px solid var(--border2);background:none;color:var(--text3);cursor:pointer;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center}.ing-add-btn{width:100%;margin-top:8px;padding:9px 13px;background:none;border:1px dashed var(--border2);border-radius:var(--rs);font-size:13px;color:var(--text3);font-family:inherit;cursor:pointer;text-align:left}.ing-col-heads{display:flex;gap:6px;margin-bottom:6px;padding-right:36px}.ing-col-head{font-size:11px;color:var(--text3)}.ing-col-head.w-amount{flex:0 0 58px;text-align:center}.ing-col-head.w-unit{flex:0 0 62px}.ing-col-head.w-name{flex:1}.macros-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.macros-header .clabel{margin:0}.macros-header button{font-size:12px;color:var(--green);background:none;border:none;cursor:pointer;font-family:inherit;font-weight:500}.mgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.mcell{text-align:center}.mcell label{font-size:10px;font-weight:500;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:4px}.mcell input{text-align:center;padding:10px 4px;font-size:17px;font-weight:500;width:100%;border:1px solid var(--border2);border-radius:var(--rs);font-family:inherit;background:var(--surface);color:var(--text)}.wine-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px 16px;margin-bottom:10px;cursor:pointer}.wine-card-name{font-size:16px;font-weight:500;margin-bottom:2px}.wine-card-producer{font-size:13px;color:var(--text2);margin-bottom:6px}.wine-card-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.wine-style-tag{display:inline-block;font-size:11px;font-weight:500;padding:2px 8px;border-radius:10px}.wine-style-tag.red{background:var(--wine-light);color:var(--wine-text)}.wine-style-tag.white{background:#fdf8e8;color:#5a4a00}.wine-style-tag.rose{background:#fde8f0;color:#8b1a4a}.wine-style-tag.sparkling{background:#e8eef5;color:#1a3a5a}.wine-style-tag.dessert{background:#f5ead0;color:#5a3a00}.wine-style-tag.fortified{background:#eae0f0;color:#3a1a5a}.wine-style-tag.orange{background:#f5e8d8;color:#5a3010}.wine-style-tag.other{background:var(--surface2);color:var(--text2)}.wine-score{font-size:13px;font-weight:500;color:var(--wine)}.wine-meta-item{font-size:12px;color:var(--text3)}.wine-detail-name{font-family:"DM Serif Display",serif;font-size:26px;line-height:1.2;margin-bottom:4px}.wine-detail-producer{font-size:16px;color:var(--text2);margin-bottom:14px}.wine-score-row{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:12px}.wine-detail-meta{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:4px}.wine-detail-meta-item .val{font-size:20px;font-weight:500}.wine-detail-meta-item .lbl{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.05em}.wine-score-big{font-size:42px;font-weight:500;color:var(--wine);line-height:1}.wine-score-big span{font-size:16px;color:var(--text3);font-weight:400}.wine-note-section{margin-bottom:14px}.wine-note-label{font-size:11px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--text3);margin-bottom:4px}.wine-note-text{font-size:14px;line-height:1.7}.wine-actions{display:flex;gap:10px;margin-top:4px}.wine-actions .btn{flex:1;margin:0}.score-input-wrap{display:flex;align-items:center;gap:12px}.score-input-wrap input{width:80px;text-align:center;font-size:24px;font-weight:500;color:var(--wine);padding:10px;border:1px solid var(--border2);border-radius:var(--rs);font-family:inherit;background:var(--surface)}.score-hint{font-size:12px;color:var(--text3);line-height:1.4}.buy-again-row{display:flex;gap:8px;margin-top:4px}.buy-btn{flex:1;padding:11px;border:1px solid var(--border2);border-radius:var(--rs);font-size:14px;font-family:inherit;background:var(--surface);cursor:pointer;text-align:center;transition:all .1s;color:var(--text2)}.buy-btn.on.yes{border-color:var(--green);background:var(--green-light);color:var(--green-text);font-weight:500}.buy-btn.on.no{border-color:var(--red);background:var(--red-light);color:var(--red);font-weight:500}.would-buy-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;padding:4px 10px;border-radius:20px}.would-buy-badge.yes{background:var(--green-light);color:var(--green-text)}.would-buy-badge.no{background:var(--red-light);color:var(--red)}.sset-title{font-family:"DM Serif Display",serif;font-size:18px;margin-bottom:6px}.sset-desc{font-size:13px;color:var(--text2);line-height:1.6;margin-bottom:14px}.sset-desc a{color:var(--green);font-weight:500}code{background:var(--surface2);padding:2px 6px;border-radius:4px;font-size:12px;font-family:monospace;color:var(--green-text)}.cfg-saved{font-size:12px;color:var(--green);margin-top:4px;display:none}.cfg-saved.show{display:block}.perm-user{padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--border)}.perm-user:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}.perm-user-name{font-size:14px;font-weight:500;color:var(--text);line-height:1.3}.perm-user-email{font-size:12px;color:var(--text3);margin-bottom:10px}.perm-group{margin-bottom:8px}.perm-group:last-child{margin-bottom:0}.perm-group-label{font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text3);margin-bottom:5px}.perm-chips{display:flex;gap:5px;flex-wrap:wrap}.perm-chip{padding:4px 10px;border-radius:99px;border:1px solid var(--border2);background:var(--surface2);color:var(--text3);font-size:12px;font-family:inherit;cursor:pointer;transition:all .12s;-webkit-tap-highlight-color:transparent}.perm-chip.on{background:var(--green-light);color:var(--green-text);border-color:var(--green)}#tab-holidays{background:var(--bg)}#hol-container{max-width:1100px;margin:0 auto;padding:12px 24px 40px}#hol-user-bar{display:flex;align-items:center;margin:0 0 6px;font-size:11px;color:var(--text3)}#hol-sync{font-size:11px;color:var(--text3)}#hol-sync.saving{color:var(--hol)}#hol-sync.saved{color:var(--green)}#hol-sync.error{color:var(--red)}#hol-container h1{font-size:18px;font-weight:500;margin:0 0 2px}#hol-subtitle{font-size:12px;color:var(--text2);margin:0 0 10px}#hol-sticky{background:var(--bg);padding:8px 0 6px;margin:0 0 6px;border-bottom:.5px solid rgba(0,0,0,.08)}#hol-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:0 0 8px}.stat{background:var(--surface);border:.5px solid var(--border);border-radius:6px;padding:6px 10px}.stat-label{font-size:11px;color:var(--text2);margin:0 0 2px}.stat-value{font-size:18px;font-weight:500;margin:0}.stat-input{font-family:inherit;font-size:16px;font-weight:500;border:.5px solid var(--border2);border-radius:4px;padding:1px 4px;width:70px;color:var(--text);background:var(--surface)}.stat-input:focus{outline:2px solid var(--hol);outline-offset:1px}.stat-date-input{font-family:inherit;font-size:12px;border:.5px solid var(--border2);border-radius:4px;padding:2px 4px;color:var(--text);background:var(--surface);width:100%;margin-top:2px}#hol-legend{display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:11px;color:var(--text2)}.legend-item{display:inline-flex;align-items:center;gap:5px}.legend-swatch{width:11px;height:11px;border-radius:3px;flex-shrink:0}.taken-swatch{background:#f4c0d1;border:.5px solid #D4537E}.planned-swatch{background:#cecbf6;border:.5px solid #7F77DD}.bank-swatch{background:#fac775;border:.5px solid #BA7517}.trip-swatch{background:#eeedf9;border:.5px solid #c5c2f0}#hol-warning{margin-left:auto;color:var(--red);font-size:12px}#hol-reset-btn{font-size:11px;padding:2px 8px;background:var(--surface);border:.5px solid var(--border2);border-radius:5px;cursor:pointer;color:var(--text);font-family:inherit}#hol-reset-btn:hover{background:var(--surface2)}#hol-hint{font-size:11px;color:var(--text3);margin:0 0 8px}#cal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.month{background:var(--surface);border:.5px solid var(--border);border-radius:6px;padding:6px 7px 7px}.month-name{font-size:12px;font-weight:500;margin:0 0 4px;text-align:center}.dow-row{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;font-size:9px;color:var(--text3);text-align:center;margin-bottom:2px}.week-wrap{position:relative;margin-bottom:1px}.week-wrap.has-labels .week-days{padding-bottom:9px}.week-days{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}.week-labels{position:absolute;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(7,1fr);gap:1px;z-index:2}.label-span{font-size:6.5px;font-weight:500;border-radius:1px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 3px;line-height:9px}.label-span.planned{background:#7f77ddd9;color:#fff}.label-span.taken{background:#a8325acc;color:#fff}.label-span.trip-nw{background:#7f77dd73;color:var(--hol)}.day-cell{position:relative;font-size:10px;text-align:center;padding:2px 0 1px;border-radius:2px;overflow:hidden;-webkit-user-select:none;user-select:none}.day-cell.clickable{cursor:pointer}.day-cell.clickable:hover{outline:1px solid rgba(0,0,0,.3)}.day-num{display:block;position:relative;z-index:2;line-height:1.3}.half-am,.half-pm{position:absolute;top:0;bottom:0;width:50%;z-index:1}.half-am{left:0}.half-pm{right:0}#hol-bottom{margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.hol-panel-section{background:var(--surface);border:.5px solid var(--border);border-radius:6px;padding:10px 12px}.hol-panel-header{display:flex;align-items:center;gap:8px;margin:0 0 8px}.hol-panel-header h3{font-size:12px;font-weight:500;margin:0;color:var(--text2);flex:1}#add-trip-btn{font-size:11px;padding:2px 8px;background:var(--surface);border:.5px solid var(--border2);border-radius:5px;cursor:pointer;color:var(--text);font-family:inherit}#add-trip-btn:hover{background:var(--surface2)}.trip-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:.5px solid var(--border);font-size:12px}.trip-row:last-child{border-bottom:none}.trip-dot{width:8px;height:8px;border-radius:50%;background:var(--hol);flex-shrink:0}.trip-row-label{font-weight:500;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trip-row-meta{color:var(--text3);font-size:10px;white-space:nowrap}.trip-row-actions{display:flex;gap:4px;flex-shrink:0}.trip-row-actions button{font-size:10px;padding:2px 6px;background:var(--surface);border:.5px solid var(--border2);border-radius:4px;cursor:pointer;font-family:inherit;color:var(--text)}.trip-row-actions button:hover{background:var(--surface2)}.trip-row-actions button.danger{color:var(--red)}.unlabeled-row{display:flex;align-items:center;gap:6px;padding:4px 0;border-bottom:.5px solid var(--border);font-size:11px}.unlabeled-row:last-child{border-bottom:none}.unlabeled-date{color:var(--text2);min-width:80px;flex-shrink:0}.unlabeled-type{color:var(--text3);font-size:10px;white-space:nowrap}.unlabeled-input{font-family:inherit;font-size:11px;border:.5px solid var(--border2);border-radius:3px;padding:2px 5px;flex:1;min-width:0;color:var(--text);background:var(--surface)}.unlabeled-input:focus{outline:1px solid var(--hol)}.unlabeled-save{padding:2px 7px;font-size:10px;background:var(--surface);border:.5px solid var(--border2);border-radius:4px;cursor:pointer;font-family:inherit;color:var(--text);flex-shrink:0}.unlabeled-save:hover{background:var(--surface2)}#ctx-menu{position:fixed;background:var(--surface);border:.5px solid var(--border2);border-radius:8px;box-shadow:0 4px 16px #0000001f;padding:4px;z-index:1000;min-width:180px}.ctx-header{font-size:11px;color:var(--text3);padding:6px 10px 4px;text-transform:uppercase;letter-spacing:.5px}#ctx-menu button{display:flex;align-items:center;gap:8px;width:100%;border:none;background:transparent;padding:7px 10px;font-size:13px;text-align:left;border-radius:4px;cursor:pointer;color:var(--text);font-family:inherit}#ctx-menu button:hover{background:var(--surface2)}#ctx-menu button.ctx-danger{color:var(--red)}#ctx-menu hr{border:none;border-top:.5px solid rgba(0,0,0,.1);margin:4px 0}.swatch{width:14px;height:14px;border-radius:3px;flex-shrink:0;position:relative;overflow:hidden;border:.5px solid rgba(0,0,0,.15)}.planned-full-swatch{background:#cecbf6;border-color:#7f77dd}.am-swatch{background:linear-gradient(to right,#cecbf6 50%,#f0f0f0 50%)}.pm-swatch{background:linear-gradient(to right,#f0f0f0 50%,#cecbf6 50%)}#trip-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:2000;display:flex;align-items:center;justify-content:center}#trip-modal-box{background:var(--surface);border-radius:10px;padding:18px 22px 16px;min-width:300px;box-shadow:0 8px 32px #0000002e}#trip-modal-box h3{font-size:14px;font-weight:500;margin:0 0 14px}.modal-field{margin:0 0 10px}.modal-field label{display:block;font-size:11px;color:var(--text2);margin:0 0 3px}.modal-field input[type=text]{font-family:inherit;font-size:13px;border:.5px solid var(--border2);border-radius:4px;padding:5px 8px;width:100%;color:var(--text);background:var(--surface)}.modal-field input[type=text]:focus{outline:2px solid var(--hol);outline-offset:1px}.modal-date-row{display:flex;gap:6px;align-items:center}.modal-date-row select{font-family:inherit;font-size:12px;border:.5px solid var(--border2);border-radius:4px;padding:4px 6px;color:var(--text);background:var(--surface);cursor:pointer}.sel-month{flex:1}.sel-day{width:54px}#trip-modal-info{font-size:11px;color:var(--hol);margin:6px 0 10px;min-height:16px}.modal-buttons{display:flex;gap:6px;justify-content:flex-end;margin-top:14px}.modal-buttons button{font-size:12px;padding:5px 14px;background:var(--surface);border:.5px solid var(--border2);border-radius:5px;cursor:pointer;font-family:inherit;color:var(--text)}.modal-buttons button:hover{background:var(--surface2)}.hol-btn-primary{background:var(--hol)!important;color:#fff!important;border-color:var(--hol)!important}.hol-btn-primary:hover{background:#6b63cc!important}@media (max-width:900px){#cal-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:720px){#cal-grid{grid-template-columns:repeat(2,1fr)}#hol-bottom{grid-template-columns:1fr}}@media (max-width:480px){#cal-grid{grid-template-columns:1fr}}#tab-goals .goals-wrap{max-width:720px;margin:0 auto;padding:1rem 1rem 80px}#tab-goals .goals-hdr{display:flex;align-items:center;justify-content:flex-end;margin-bottom:1rem;gap:6px;flex-wrap:wrap}#tab-goals .gp-btn{background:var(--surface);border:.5px solid var(--border2);border-radius:999px;padding:5px 12px;cursor:pointer;font-size:12px;color:var(--text2);display:flex;align-items:center;gap:5px;font-family:DM Sans,sans-serif;transition:color .15s,background .15s}#tab-goals .gp-btn:hover{color:var(--text)}#tab-goals .gp-btn.on{background:var(--text);color:var(--surface);border-color:var(--text)}#tab-goals .lp-tabs{display:flex;gap:6px;margin-bottom:1.25rem}#tab-goals .lp-tab{padding:5px 14px;border-radius:999px;border:.5px solid var(--border2);background:transparent;cursor:pointer;font-size:13px;color:var(--text2);font-family:DM Sans,sans-serif}#tab-goals .lp-tab.on{background:var(--text);color:var(--surface);border-color:var(--text)}#tab-goals .num{color:var(--text2);font-weight:400;-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums;flex-shrink:0;margin-right:8px}#tab-goals .title-row{display:flex;align-items:baseline}#tab-goals .title-row>[data-field]{flex:1;min-width:0}#tab-goals .tg-section{margin-bottom:2rem;position:relative}#tab-goals .tg-hdr{display:flex;align-items:flex-start;gap:12px;padding:6px 8px 10px;border-bottom:1px solid var(--border);margin-bottom:12px;position:relative;cursor:pointer;border-radius:6px;transition:background .1s}#tab-goals .tg-hdr:hover{background:var(--surface)}#tab-goals .tg-chk{width:20px;height:20px;border-radius:5px;border:1.5px solid var(--border2);flex-shrink:0;margin-top:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,border-color .15s}#tab-goals .tg-chk.done{background:var(--text);border-color:var(--text)}#tab-goals .tg-icon{width:36px;height:36px;border-radius:var(--rs);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:18px;cursor:pointer;transition:opacity .15s}#tab-goals .tg-icon:hover,#tab-goals .gicon:hover{opacity:.7}#tab-goals .tg-info{flex:1;min-width:0}#tab-goals .tg-title{font-size:18px;font-weight:600;color:var(--text);outline:none;line-height:1.3}#tab-goals .tg-desc{font-size:13px;color:var(--text2);margin-top:3px;line-height:1.45;outline:none}#tab-goals .tg-meta{margin-top:8px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}#tab-goals .tg-section.done-section .tg-title{text-decoration:line-through;color:var(--text2)}#tab-goals .tg-section.done-section{opacity:.5}#tab-goals .chevron{margin-left:8px;color:var(--text2);font-size:18px;flex-shrink:0;align-self:flex-start;margin-top:8px;transition:transform .2s;cursor:pointer;padding:2px;border-radius:4px}#tab-goals .chevron:hover{background:var(--surface2);color:var(--text)}#tab-goals .collapsed .tg-chevron,#tab-goals .collapsed .g-chevron{transform:rotate(-90deg)}#tab-goals .goal-block{margin-bottom:14px}#tab-goals .gcard{background:var(--surface);border:.5px solid var(--border);border-radius:var(--r);padding:.85rem 1.1rem;position:relative;transition:opacity .15s,background .1s;cursor:pointer}#tab-goals .gcard:hover{background:var(--surface2)}#tab-goals .gcard.done-card{opacity:.5}#tab-goals .gcard.done-card .gtitle{text-decoration:line-through;color:var(--text2)}#tab-goals .grow{display:flex;align-items:flex-start;gap:10px}#tab-goals .gchk{width:18px;height:18px;border-radius:4px;border:1.5px solid var(--border2);flex-shrink:0;margin-top:7px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,border-color .15s}#tab-goals .gchk.done{background:var(--text);border-color:var(--text)}#tab-goals .gicon{width:32px;height:32px;border-radius:var(--rs);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px;cursor:pointer;transition:opacity .15s}#tab-goals .ginfo{flex:1;min-width:0}#tab-goals .gtitle{font-size:14px;font-weight:500;color:var(--text);margin:0 0 2px;outline:none}#tab-goals .gtarget{font-size:12px;color:var(--text2);margin:0 0 6px;line-height:1.4;outline:none}#tab-goals .gmeta{display:flex;gap:6px;flex-wrap:wrap;align-items:center}#tab-goals .nested-steps{margin:-2px 0 0 32px;padding:12px 0 4px 18px;position:relative;border-left:2px solid var(--border)}#tab-goals .nested-steps:before{content:"";position:absolute;top:18px;left:-2px;width:12px;height:2px;background:var(--border)}#tab-goals .nested-steps .trow{background:var(--surface2);border-color:transparent;padding:6px 10px}#tab-goals .nested-steps .trow:hover{background:var(--surface)}#tab-goals .direct-label{font-size:11px;font-weight:500;color:var(--text2);text-transform:uppercase;letter-spacing:.05em;margin:4px 0 -4px 32px}#tab-goals [data-field]{cursor:text;border-radius:3px;transition:background .1s}#tab-goals [data-field]:hover{background:var(--surface2)}#tab-goals [data-field]:focus{background:var(--surface2);outline:1px solid var(--border2)}#tab-goals .gcard [data-field]:hover,#tab-goals .tg-hdr [data-field]:hover,#tab-goals .trow [data-field]:hover{background:var(--surface)}#tab-goals .date-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:2px 8px;border-radius:999px;background:var(--surface2);color:var(--text2);border:.5px solid var(--border);cursor:pointer;transition:filter .1s;-webkit-user-select:none;user-select:none}#tab-goals .date-chip:hover{filter:brightness(.95)}#tab-goals .date-chip.overdue{background:#fcebeb;color:#a32d2d;border-color:transparent}#tab-goals .date-chip.today{background:#faeeda;color:#633806;border-color:transparent}#tab-goals .date-chip.empty{font-style:italic;opacity:.7}#tab-goals .tgoal-select{font-size:11px;padding:2px 22px 2px 8px;border-radius:999px;border:0;font-family:DM Sans,sans-serif;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='3'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 6px center;background-size:8px;transition:filter .1s}#tab-goals .tgoal-select:hover{filter:brightness(.95)}#tab-goals .week-hdr{font-size:12px;font-weight:500;color:var(--text2);margin:1.5rem 0 .5rem;display:flex;align-items:center;gap:6px}#tab-goals .week-hdr:first-of-type{margin-top:0}#tab-goals .week-progress{margin-left:auto;display:flex;align-items:center;gap:6px}#tab-goals .week-progress-bar{width:60px;height:4px;background:var(--border);border-radius:999px;overflow:hidden}#tab-goals .week-progress-fill{height:100%;background:var(--text2);border-radius:999px;transition:width .3s}#tab-goals .week-progress-label{font-size:11px;color:var(--text2);white-space:nowrap}#tab-goals .trow{display:flex;align-items:flex-start;gap:9px;padding:7px 10px;background:var(--surface);border:.5px solid var(--border);border-radius:var(--rs);margin-bottom:6px;cursor:pointer;transition:background .1s;position:relative}#tab-goals .trow:hover{background:var(--surface2)}#tab-goals .trow.done-row{opacity:.45}#tab-goals .tchk{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--border2);flex-shrink:0;margin-top:1px;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}#tab-goals .tchk.done{background:var(--text);border-color:var(--text)}#tab-goals .tbody{flex:1;min-width:0}#tab-goals .ttext{font-size:13px;color:var(--text);line-height:1.4;outline:none}#tab-goals .ttext.done{text-decoration:line-through;color:var(--text2)}#tab-goals .tmeta{display:flex;gap:6px;margin-top:4px;align-items:center;flex-wrap:wrap}#tab-goals .tpri{font-size:10px;padding:1px 6px;border-radius:999px;font-weight:500;-webkit-user-select:none;user-select:none;cursor:pointer;transition:filter .1s}#tab-goals .tpri:hover{filter:brightness(.95)}#tab-goals .filter-pills{display:flex;gap:5px;margin-bottom:1.1rem;flex-wrap:wrap}#tab-goals .fpill{padding:3px 10px;border-radius:999px;border:.5px solid var(--border2);background:transparent;cursor:pointer;font-size:11px;color:var(--text2);font-family:DM Sans,sans-serif}#tab-goals .fpill.on{background:var(--text);color:var(--surface);border-color:var(--text)}#tab-goals .del-btn{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:999px;border:.5px solid var(--border2);background:var(--surface);color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;opacity:0;pointer-events:none;transition:opacity .15s,color .15s,border-color .15s;z-index:2}#tab-goals .del-btn:hover{color:#a32d2d;border-color:#a32d2d}#tab-goals .gcard:hover>.del-btn,#tab-goals .tg-hdr:hover>.del-btn,#tab-goals .trow:hover>.del-btn{opacity:1;pointer-events:auto}#tab-goals .add-btn{width:100%;padding:6px 12px;border:.5px dashed var(--border2);background:transparent;border-radius:var(--rs);color:var(--text2);cursor:pointer;font-size:11px;font-family:DM Sans,sans-serif;display:flex;align-items:center;justify-content:center;gap:5px;margin-bottom:6px;transition:opacity .15s,color .15s,border-color .15s;opacity:.4}#tab-goals .add-btn:hover{opacity:1;color:var(--text);border-color:var(--text2)}#tab-goals .tg-section:hover .add-btn,#tab-goals .goal-block:hover .add-btn,#tab-goals .nested-steps:hover .add-btn{opacity:.85}#tab-goals .add-btn.always-on{opacity:.7}#tab-goals .add-btn.always-on:hover{opacity:1}#lp-date-input{position:fixed;opacity:0;pointer-events:none;width:1px;height:1px;padding:0;border:0;margin:0}.goals-empty{text-align:center;padding:48px 20px 24px}.goals-empty-title{font-size:18px;font-weight:500;margin-bottom:6px;color:var(--text)}.goals-empty-desc{font-size:14px;color:var(--text2);margin-bottom:20px;line-height:1.5}#tab-home{background:#131b30;min-height:100vh}.home-page{min-height:100vh;background:#131b30;color:#fff}.home-hdr{display:flex;align-items:flex-start;justify-content:space-between;padding:calc(env(safe-area-inset-top) + 20px) 20px 12px}.home-wordmark{font-family:"DM Serif Display",serif;font-size:26px;color:#fff;letter-spacing:.01em;line-height:1}.home-body{padding:8px 16px 100px;max-width:480px;margin:0 auto}.home-section{margin-bottom:28px}.home-section-label{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#ffffff4d;margin-bottom:10px;padding-left:2px}.home-grid{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent;padding-bottom:6px}.home-grid::-webkit-scrollbar{height:2px;display:block}.home-grid::-webkit-scrollbar-track{background:#ffffff0d;border-radius:99px}.home-grid::-webkit-scrollbar-thumb{background:#ffffff38;border-radius:99px}.home-tile{flex-shrink:0;width:130px;height:130px;scroll-snap-align:start;background:#ffffff12;border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:14px;cursor:pointer;transition:background .1s,transform .1s;display:flex;flex-direction:column;justify-content:space-between;-webkit-tap-highlight-color:transparent}.home-tile:not(.tile-placeholder):active{background:#ffffff24;transform:scale(.95)}.tile-placeholder{opacity:.28;cursor:default}.tile-emoji{font-size:26px;line-height:1}.tile-bottom{display:flex;flex-direction:column;gap:3px}.tile-label{font-size:13px;font-weight:500;color:#ffffffe6;line-height:1.3}.tile-soon{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#ffffff59}.home-account{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:18px}.home-account-top{display:flex;align-items:center;gap:14px;margin-bottom:16px}.home-avatar{width:44px;height:44px;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;flex-shrink:0;letter-spacing:.02em;cursor:pointer;transition:opacity .15s}.home-avatar:hover{opacity:.85}.home-account-info{flex:1;min-width:0}.home-account-name{font-size:15px;font-weight:500;color:#ffffffe6;margin-bottom:2px}.home-account-email{font-size:12px;color:#fff6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-settings-section{padding:14px 0;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:14px}.home-settings-key{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#ffffff4d;margin-bottom:6px}.home-settings-val{font-size:12px;color:#ffffff59;line-height:1.8}.home-settings-val code{background:#ffffff1a;color:#ffffff8c;padding:1px 5px;border-radius:4px;font-size:11px;font-family:monospace}.home-signout-btn{width:100%;padding:11px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:none;color:#ffffff73;font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.home-signout-btn:active{background:#ffffff14;color:#ffffffb3}.home-name-badge{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.home-signout-link{background:none;border:none;color:#ffffff40;font-size:10px;cursor:pointer;font-family:inherit;padding:0;text-align:right;letter-spacing:.02em;-webkit-tap-highlight-color:transparent}.home-signout-link:hover{color:#ffffff8c}.home-first-name{font-size:13px;font-weight:500;color:#ffffffd9;cursor:pointer;padding:2px 6px;border-radius:6px;transition:background .1s}.home-first-name:hover{background:#ffffff1a}.home-first-name.empty{color:#ffffff4d;font-style:italic}.home-name-input{font-size:13px;font-weight:500;background:#ffffff1a;border:1px solid rgba(255,255,255,.25);border-radius:6px;color:#fff;padding:2px 8px;font-family:inherit;width:110px;outline:none;text-align:right}.home-name-input:focus{border-color:var(--green)}
