:root {
  --bg:#0f0f13; --surface:#18181f; --surface2:#22222d; --surface3:#2a2a38;
  --border:#32324a; --accent:#c8a96e; --accent2:#7eb8a4; --accent3:#d46a6a;
  --text:#e8e4dc; --text2:#9a9488; --text3:#5a5670;
  --holiday:#4a2a2a; --holiday-text:#e8806a;
  --vacation:#1a3a4a; --vacation-text:#7eb8d4;
  --own:#2a3a1a; --own-text:#a8c878;
  --shopping-done:#2a2a38;
  --lidl:#e8c040; --lidl-bg:#2a2510;
  --dm:#e85a8a; --dm-bg:#2a1020;
  --rossmann:#e04040; --rossmann-bg:#2a1010;
  --rewe:#e06030; --rewe-bg:#2a1808;
  --store-all:#7eb8a4;
  --note1:#2a2518; --note2:#182a1a; --note3:#181828; --note4:#2a1820;
}
body.light {
  --bg:#f5f0e8; --surface:#ffffff; --surface2:#ede8df; --surface3:#e4ddd0;
  --border:#ccc0aa; --accent:#8c6418; --accent2:#2a7a66; --accent3:#b03030;
  --text:#2a2010; --text2:#4a3e2a; --text3:#9a8060;
  --holiday:#f5d0c4; --holiday-text:#8a2010;
  --vacation:#c4d8ee; --vacation-text:#0a3e6a;
  --own:#c4e0aa; --own-text:#1e4e08;
  --shopping-done:#e4ddd0;
  --lidl:#7a5800; --lidl-bg:#f0e098;
  --dm:#a0105a; --dm-bg:#f5c0d8;
  --rossmann:#940808; --rossmann-bg:#f5c0c0;
  --rewe:#8c2200; --rewe-bg:#f5cdb8;
  --store-all:#2a7a66;
  --note1:#fdf8ec; --note2:#f0f8ec; --note3:#ecf0fc; --note4:#fceaf0;
  background:#f5f0e8; color:#2a2010;
}
html,body{min-height:100%;}
*{box-sizing:border-box;margin:0;padding:0;}
*,*::before,*::after{transition:background-color .25s,border-color .25s,color .2s;}
body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;display:flex;flex-direction:column;}

/* HEADER */
header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;}
header h1{font-family:'DM Serif Display',serif;font-size:1.2rem;color:var(--accent);}
.header-actions{display:flex;gap:6px;}
.icon-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text2);width:34px;height:34px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all .2s;}
.icon-btn:hover{background:var(--surface3);color:var(--text);border-color:var(--accent);}

/* SEARCH BAR */
.search-bar{display:none;padding:8px 16px;background:var(--surface);border-bottom:1px solid var(--border);}
.search-bar.open{display:block;}
.search-bar input{width:100%;background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:9px 14px;border-radius:10px;font-size:0.9rem;font-family:inherit;}
.search-bar input:focus{outline:none;border-color:var(--accent);}
.search-results{margin-top:8px;}
.sr-item{padding:8px 12px;background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-bottom:4px;font-size:0.82rem;cursor:pointer;}
.sr-item:hover{border-color:var(--accent);}
.sr-label{font-size:0.68rem;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-right:6px;}

/* TABS */
.tabs{display:flex;background:var(--surface);border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none;}
.tabs::-webkit-scrollbar{display:none;}
.tab{padding:10px 13px;cursor:pointer;color:var(--text3);font-size:0.78rem;font-weight:500;white-space:nowrap;border-bottom:2px solid transparent;transition:all .2s;display:flex;align-items:center;gap:5px;}
.tab:hover{color:var(--text2);}
.tab.active{color:var(--accent);border-bottom-color:var(--accent);}

/* CONTENT */
.content{flex:1;padding:14px;max-width:900px;margin:0 auto;width:100%;background:var(--bg);}
.view{display:none;}
.view.active{display:block;}

/* SECTION HEADERS */
.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.section-title{font-family:'DM Serif Display',serif;font-size:1.2rem;color:var(--accent);}

/* FORMS */
.form-row{display:flex;gap:8px;margin-bottom:8px;flex-wrap:wrap;}
.form-row input,.form-row select,.form-row textarea{background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:9px 12px;border-radius:8px;font-size:0.85rem;font-family:inherit;transition:border-color .2s;}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:none;border-color:var(--accent);}
.form-row input::placeholder,.form-row textarea::placeholder{color:var(--text3);}
.form-row select option{background:var(--surface2);}
.fi{flex:1;min-width:130px;}
.submit-btn{background:var(--accent);color:#0f0f13;border:none;padding:10px;border-radius:8px;cursor:pointer;font-weight:600;font-size:0.85rem;font-family:inherit;width:100%;transition:opacity .2s;margin-top:4px;}
.submit-btn:hover{opacity:.85;}

/* CARDS */
.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:10px;}

/* ===== CALENDAR ===== */
.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.cal-nav-center{display:flex;flex-direction:column;align-items:center;gap:2px;}
.cal-month-title{font-family:'DM Serif Display',serif;font-size:1.4rem;color:var(--accent);}
.cal-year{font-size:0.78rem;color:var(--text3);font-weight:500;}
.nav-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text2);width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:1rem;transition:all .2s;display:flex;align-items:center;justify-content:center;}
.nav-btn:hover{background:var(--surface3);color:var(--accent);border-color:var(--accent);}
.view-toggle-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text2);padding:5px 12px;border-radius:20px;cursor:pointer;font-size:0.75rem;font-weight:600;font-family:inherit;transition:all .2s;}
.view-toggle-btn:hover{border-color:var(--accent);color:var(--accent);}

/* WEATHER WIDGET */
.weather-widget{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin-bottom:12px;}
.weather-icon{font-size:1.6rem;}
.weather-info{flex:1;}
.weather-temp{font-family:'DM Serif Display',serif;font-size:1.3rem;color:var(--accent);}
.weather-desc{font-size:0.75rem;color:var(--text3);}
.weather-loc{font-size:0.7rem;color:var(--text3);}
.weather-loading{font-size:0.8rem;color:var(--text3);font-style:italic;}

/* Month Grid */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;background:var(--bg);border-radius:10px;}
.cal-weekday{text-align:center;font-size:0.68rem;font-weight:600;color:var(--text3);padding:5px 0;letter-spacing:.08em;text-transform:uppercase;}
.cal-day{height:52px;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:0.88rem;position:relative;transition:all .15s;border:1px solid transparent;padding:2px;}
@media(min-width:600px){.cal-day{height:60px;}}
@media(min-width:900px){.cal-day{height:66px;}}
.cal-day:hover:not(.empty){background:var(--surface2);border-color:var(--border);}
.cal-day.empty{cursor:default;}
.cal-day.today{background:var(--surface2);border-color:var(--accent);font-weight:600;}
.cal-day.holiday{background:var(--holiday);}
.cal-day.holiday .day-num{color:var(--holiday-text);font-weight:600;}
.cal-day.vacation{background:var(--vacation);}
.cal-day.vacation .day-num{color:var(--vacation-text);font-weight:600;}
.cal-day.has-own{background:var(--own);}
.cal-day.has-own .day-num{color:var(--own-text);font-weight:600;}
.cal-day.weekend .day-num{color:var(--text3);}
.cal-day.today .day-num{color:var(--accent);}
.day-num{font-size:0.78rem;line-height:1;color:var(--text);}
.day-dots{display:flex;gap:2px;margin-top:2px;flex-wrap:wrap;justify-content:center;}
.dot{width:4px;height:4px;border-radius:50%;background:var(--accent);}
body.light .cal-day:not(.empty){background:var(--surface);border-color:var(--border);box-shadow:0 1px 3px rgba(0,0,0,.07);}
body.light .cal-day:not(.empty):hover{background:var(--surface2);}
body.light .cal-day.holiday{background:var(--holiday);border-color:var(--holiday-text);}
body.light .cal-day.vacation{background:var(--vacation);border-color:var(--vacation-text);}
body.light .cal-day.has-own{background:var(--own);border-color:var(--own-text);}
body.light .cal-day.today{background:var(--surface2);border-color:var(--accent);box-shadow:0 0 0 2px var(--accent);}
body.light .cal-day.weekend:not(.holiday):not(.vacation):not(.has-own){background:var(--surface2);}

/* YEAR VIEW */
.year-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;}
.mini-month{}
.mini-month-title{font-family:'DM Serif Display',serif;font-size:0.9rem;color:var(--accent);text-align:center;margin-bottom:6px;}
.mini-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
.mini-day{aspect-ratio:1;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:0.62rem;cursor:pointer;min-height:22px;transition:background .15s;}
.mini-day:hover:not(.empty){background:var(--surface3);}
.mini-day.empty{cursor:default;}
.mini-day.today{background:var(--surface2);border:1px solid var(--accent);color:var(--accent);font-weight:700;}
.mini-day.holiday{background:var(--holiday);color:var(--holiday-text);}
.mini-day.vacation{background:var(--vacation);color:var(--vacation-text);}
.mini-day.has-own{background:var(--own);color:var(--own-text);}
.mini-day.weekend{color:var(--text3);}
.mini-weekday{text-align:center;font-size:0.58rem;color:var(--text3);padding:2px 0;font-weight:600;letter-spacing:.05em;}

/* LEGEND */
.cal-legend{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid var(--border);}
.legend-item{display:flex;align-items:center;gap:4px;font-size:0.7rem;color:var(--text3);}
.legend-dot{width:9px;height:9px;border-radius:3px;}
.ld-holiday{background:var(--holiday);border:1px solid var(--holiday-text);}
.ld-vacation{background:var(--vacation);border:1px solid var(--vacation-text);}
.ld-own{background:var(--own);border:1px solid var(--own-text);}

/* UPCOMING */
.month-upcoming{margin-top:14px;border-top:1px solid var(--border);padding-top:12px;}
.month-upcoming-title{font-size:0.68rem;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;}
.upcoming-item{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:5px;border-left:3px solid var(--accent);}
.upcoming-item.ui-vacation{border-left-color:var(--vacation-text);}
.upcoming-item.ui-holiday{border-left-color:var(--holiday-text);}
.upcoming-item.ui-note{border-left-color:var(--own-text);}
.upcoming-date-pill{background:var(--surface2);border-radius:6px;padding:4px 7px;text-align:center;min-width:34px;flex-shrink:0;}
.upd-day{font-family:'DM Serif Display',serif;font-size:1rem;color:var(--accent);line-height:1;}
.upcoming-item.ui-vacation .upd-day{color:var(--vacation-text);}
.upcoming-item.ui-holiday .upd-day{color:var(--holiday-text);}
.upcoming-item.ui-note .upd-day{color:var(--own-text);}
.upd-wd{font-size:0.6rem;color:var(--text3);text-transform:uppercase;}
.upcoming-body{flex:1;}
.upcoming-name{font-size:0.82rem;font-weight:500;color:var(--text);}
.upcoming-sub{font-size:0.7rem;color:var(--text3);margin-top:1px;}
.upcoming-empty{font-size:0.8rem;color:var(--text3);text-align:center;padding:8px 0;}

/* DAY PANEL */
.day-panel{margin-top:14px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px;display:none;}
.day-panel.open{display:block;}
.day-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.day-panel-title{font-family:'DM Serif Display',serif;font-size:1rem;color:var(--accent);}
.event-list{list-style:none;}
.event-item{padding:7px 10px;background:var(--surface2);border-radius:8px;margin-bottom:5px;display:flex;justify-content:space-between;align-items:center;font-size:0.82rem;border-left:3px solid var(--accent);}
.event-item.vacation-ev{border-left-color:var(--vacation-text);}
.event-item.system-ev{border-left-color:var(--holiday-text);}
.event-item .ev-del{background:none;border:none;color:var(--text3);cursor:pointer;font-size:.9rem;padding:2px 4px;border-radius:4px;transition:color .2s;}
.event-item .ev-del:hover{color:var(--accent3);}
.ev-add-form{display:flex;gap:8px;margin-top:8px;}
.ev-add-form input{flex:1;background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:7px 10px;border-radius:8px;font-size:0.82rem;font-family:inherit;}
.ev-add-form input:focus{outline:none;border-color:var(--accent);}
.ev-add-form button{background:var(--accent);color:#0f0f13;border:none;padding:7px 12px;border-radius:8px;cursor:pointer;font-weight:600;font-size:0.82rem;}
.empty-events{color:var(--text3);font-size:0.8rem;text-align:center;padding:8px 0;}

/* ===== APPOINTMENTS ===== */
.appt-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px;margin-bottom:8px;display:flex;gap:12px;align-items:flex-start;border-left:3px solid var(--accent);}
.appt-card.vacation-card{border-left-color:var(--vacation-text);}
.appt-card.recur-card{border-left-color:var(--accent2);}
.appt-date-block{text-align:center;min-width:44px;background:var(--surface2);border-radius:8px;padding:7px 5px;}
.appt-dd{font-family:'DM Serif Display',serif;font-size:1.3rem;color:var(--accent);line-height:1;}
.appt-card.vacation-card .appt-dd{color:var(--vacation-text);}
.appt-card.recur-card .appt-dd{color:var(--accent2);}
.appt-mm{font-size:0.68rem;color:var(--text3);text-transform:uppercase;}
.appt-body{flex:1;}
.appt-title{font-weight:600;font-size:0.88rem;margin-bottom:2px;}
.appt-meta{font-size:0.72rem;color:var(--text3);}
.appt-del{background:none;border:none;color:var(--text3);cursor:pointer;font-size:.9rem;padding:4px;transition:color .2s;align-self:center;}
.appt-del:hover{color:var(--accent3);}
.badge{display:inline-block;font-size:0.62rem;padding:2px 6px;border-radius:8px;margin-left:5px;font-weight:600;}
.badge-vacation{background:var(--vacation);color:var(--vacation-text);}
.badge-appt{background:rgba(200,169,110,.15);color:var(--accent);}
.badge-recur{background:rgba(126,184,164,.15);color:var(--accent2);}
.month-group-header{font-size:0.72rem;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.1em;padding:7px 0 3px;border-bottom:1px solid var(--border);margin-bottom:7px;}
.no-items{color:var(--text3);font-size:0.82rem;text-align:center;padding:20px 0;}

/* ===== SHOPPING ===== */
.store-tabs{display:flex;gap:0;margin-bottom:12px;background:var(--surface2);border-radius:10px;padding:3px;overflow-x:auto;scrollbar-width:none;}
.store-tabs::-webkit-scrollbar{display:none;}
.store-tab{flex:1;min-width:52px;padding:6px 8px;border-radius:7px;font-size:0.75rem;font-weight:600;cursor:pointer;text-align:center;color:var(--text3);transition:all .2s;white-space:nowrap;border:none;background:none;font-family:inherit;}
.store-tab:hover{color:var(--text2);}
.store-tab.active-all{background:var(--surface3);color:var(--store-all);}
.store-tab.active-Lidl{background:var(--lidl-bg);color:var(--lidl);}
.store-tab.active-DM{background:var(--dm-bg);color:var(--dm);}
.store-tab.active-Rossmann{background:var(--rossmann-bg);color:var(--rossmann);}
.store-tab.active-Rewe{background:var(--rewe-bg);color:var(--rewe);}
.list-selector{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px;}
.list-chip{padding:5px 11px;background:var(--surface2);border:1px solid var(--border);border-radius:20px;font-size:0.75rem;cursor:pointer;transition:all .2s;color:var(--text2);}
.list-chip:hover{border-color:var(--accent2);color:var(--accent2);}
.list-chip.active{background:var(--accent2);color:#0f0f13;border-color:var(--accent2);font-weight:600;}
.list-chip.add-list{border-style:dashed;color:var(--text3);}
.list-chip.add-list:hover{color:var(--accent2);border-color:var(--accent2);}
.shopping-add{display:flex;gap:7px;margin-bottom:12px;}
.shopping-add input{flex:1;background:var(--surface);border:1px solid var(--border);color:var(--text);padding:9px 13px;border-radius:10px;font-size:0.88rem;font-family:inherit;}
.shopping-add input:focus{outline:none;border-color:var(--accent2);}
.shopping-add input::placeholder{color:var(--text3);}
.shop-store-select{background:var(--surface);border:1px solid var(--border);color:var(--text2);padding:9px 9px;border-radius:10px;font-size:0.82rem;font-family:inherit;cursor:pointer;min-width:88px;}
.shop-store-select:focus{outline:none;border-color:var(--accent2);}
.shop-store-select option{background:var(--surface2);}
.shopping-add button{background:var(--accent2);color:#0f0f13;border:none;padding:9px 14px;border-radius:10px;cursor:pointer;font-weight:600;font-size:0.88rem;transition:opacity .2s;}
.shopping-add button:hover{opacity:.85;}
.shopping-item{display:flex;align-items:center;gap:9px;padding:9px 11px;background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:5px;transition:all .2s;}
.shopping-item.done{background:var(--shopping-done);border-color:var(--surface3);}
.shopping-item.done .item-text{text-decoration:line-through;color:var(--text3);}
.item-check{width:19px;height:19px;border-radius:50%;border:2px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0;background:transparent;}
.item-check:hover{border-color:var(--accent2);}
.shopping-item.done .item-check{background:var(--accent2);border-color:var(--accent2);color:#0f0f13;}
.item-text{flex:1;font-size:0.88rem;}
.item-price{font-size:0.72rem;color:var(--accent);background:rgba(200,169,110,.1);padding:2px 7px;border-radius:8px;white-space:nowrap;}
.store-badge{font-size:0.62rem;font-weight:700;padding:2px 6px;border-radius:7px;flex-shrink:0;}
.sb-Lidl{background:var(--lidl-bg);color:var(--lidl);}
.sb-DM{background:var(--dm-bg);color:var(--dm);}
.sb-Rossmann{background:var(--rossmann-bg);color:var(--rossmann);}
.sb-Rewe{background:var(--rewe-bg);color:var(--rewe);}
.item-del{background:none;border:none;color:var(--text3);cursor:pointer;font-size:.9rem;padding:2px 4px;border-radius:4px;transition:color .2s;}
.item-del:hover{color:var(--accent3);}
.clear-done-btn{width:100%;background:none;border:1px dashed var(--border);color:var(--text3);padding:7px;border-radius:8px;cursor:pointer;font-size:0.78rem;margin-top:7px;transition:all .2s;font-family:inherit;}
.clear-done-btn:hover{border-color:var(--accent3);color:var(--accent3);}
/* Budget bar */
.budget-bar-wrap{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin-bottom:10px;}
.budget-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;}
.budget-label{font-size:0.72rem;color:var(--text3);font-weight:600;text-transform:uppercase;letter-spacing:.07em;}
.budget-vals{font-size:0.82rem;color:var(--text);}
.budget-vals span{color:var(--accent);font-weight:600;}
.budget-bar{height:6px;background:var(--surface2);border-radius:3px;overflow:hidden;}
.budget-fill{height:100%;border-radius:3px;background:var(--accent2);transition:width .4s;}
.budget-fill.over{background:var(--accent3);}
.budget-set-row{display:flex;gap:6px;margin-top:8px;}
.budget-set-row input{flex:1;background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:6px 10px;border-radius:7px;font-size:0.82rem;font-family:inherit;}
.budget-set-row input:focus{outline:none;border-color:var(--accent);}
.budget-set-row button{background:var(--accent);color:#0f0f13;border:none;padding:6px 12px;border-radius:7px;cursor:pointer;font-weight:600;font-size:0.78rem;}

/* ===== NOTES ===== */
.notes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-bottom:12px;}
.note-card{background:var(--note1);border:1px solid var(--border);border-radius:12px;padding:12px;cursor:pointer;min-height:90px;position:relative;transition:all .2s;}
.note-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.2);}
.note-card.c1{background:var(--note1);}
.note-card.c2{background:var(--note2);}
.note-card.c3{background:var(--note3);}
.note-card.c4{background:var(--note4);}
.note-card-title{font-size:0.8rem;font-weight:600;color:var(--accent);margin-bottom:5px;}
.note-card-preview{font-size:0.75rem;color:var(--text2);line-height:1.5;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;}
.note-del{position:absolute;top:6px;right:6px;background:none;border:none;color:var(--text3);cursor:pointer;font-size:0.85rem;opacity:0;transition:opacity .2s;}
.note-card:hover .note-del{opacity:1;}
.note-del:hover{color:var(--accent3);}
.add-note-btn{background:var(--surface);border:1px dashed var(--border);border-radius:12px;padding:12px;cursor:pointer;min-height:90px;display:flex;align-items:center;justify-content:center;color:var(--text3);font-size:1.5rem;transition:all .2s;width:100%;}
.add-note-btn:hover{border-color:var(--accent);color:var(--accent);}

/* NOTE EDITOR MODAL */
.note-editor{position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:300;display:none;align-items:flex-start;justify-content:center;padding:20px;}
.note-editor.open{display:flex;}
.note-editor-inner{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:20px;width:100%;max-width:500px;margin-top:20px;animation:slideUp .25s ease;}
.note-title-input{width:100%;background:transparent;border:none;border-bottom:1px solid var(--border);color:var(--accent);font-family:'DM Serif Display',serif;font-size:1.2rem;padding:4px 0 8px;margin-bottom:12px;}
.note-title-input:focus{outline:none;border-bottom-color:var(--accent);}
.note-body-input{width:100%;background:transparent;border:none;color:var(--text);font-family:inherit;font-size:0.88rem;line-height:1.6;resize:none;min-height:200px;padding:0;}
.note-body-input:focus{outline:none;}
.note-editor-footer{display:flex;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border);}
.note-color-pick{display:flex;gap:5px;flex:1;align-items:center;}
.nc-dot{width:18px;height:18px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:all .2s;}
.nc-dot.sel{border-color:var(--text);}
.nc1{background:#8c6418;} .nc2{background:#2a7a66;} .nc3{background:#4a6a9a;} .nc4{background:#8a3060;}

/* ===== MATERIALS ===== */
.material-item{display:flex;align-items:center;gap:9px;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:5px;}
.mat-name{flex:1;font-size:0.88rem;}
.mat-qty{font-size:0.78rem;color:var(--accent2);background:rgba(126,184,164,.1);padding:2px 8px;border-radius:8px;white-space:nowrap;}
.mat-unit{font-size:0.72rem;color:var(--text3);}
.mat-low{color:var(--accent3) !important;background:rgba(212,106,106,.1) !important;}
.mat-del{background:none;border:none;color:var(--text3);cursor:pointer;font-size:.9rem;padding:2px 4px;transition:color .2s;}
.mat-del:hover{color:var(--accent3);}
.mat-add-row{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:8px;}
.mat-add-row input,.mat-add-row select{background:var(--surface);border:1px solid var(--border);color:var(--text);padding:8px 10px;border-radius:8px;font-size:0.82rem;font-family:inherit;}
.mat-add-row input:focus,.mat-add-row select:focus{outline:none;border-color:var(--accent2);}
.mat-add-row input::placeholder{color:var(--text3);}
.mat-add-btn{background:var(--accent2);color:#0f0f13;border:none;padding:8px 14px;border-radius:8px;cursor:pointer;font-weight:600;font-size:0.82rem;}

/* ===== SETTINGS MODAL ===== */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:200;display:none;align-items:center;justify-content:center;padding:20px;}
.modal-overlay.open{display:flex;}
.modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:22px;width:100%;max-width:380px;animation:slideUp .25s ease;}
@keyframes slideUp{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
.modal-title{font-family:'DM Serif Display',serif;font-size:1.2rem;color:var(--accent);margin-bottom:18px;}
.setting-row{margin-bottom:14px;}
.setting-label{font-size:0.75rem;color:var(--text3);font-weight:600;margin-bottom:5px;text-transform:uppercase;letter-spacing:.07em;}
.setting-row select{width:100%;background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:9px 11px;border-radius:8px;font-size:0.88rem;font-family:inherit;}
.setting-row select:focus{outline:none;border-color:var(--accent);}
.modal-close{background:var(--accent);color:#0f0f13;border:none;padding:10px;border-radius:8px;width:100%;cursor:pointer;font-weight:600;font-size:0.88rem;font-family:inherit;margin-top:6px;}
.modal-close:hover{opacity:.85;}

/* SCROLLBAR */
::-webkit-scrollbar{width:4px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}

/* PRINT */
@media print {
  header,nav,.tabs,.icon-btn,.nav-btn,.submit-btn,.clear-done-btn,.item-del,.mat-del,.appt-del,.ev-del,.note-del,.day-panel,.add-note-btn,.mat-add-row,.shopping-add,.store-tabs,.list-selector,.budget-set-row,.view-toggle-btn,.search-bar{display:none!important;}
  .content{padding:0;}
  .view{display:block!important;}
  body{background:#fff;color:#000;}
}

@media(max-width:480px){
  .content{padding:10px;}
  .cal-day{height:44px;}
  .year-grid{grid-template-columns:repeat(2,1fr);}
}