@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500&display=swap");:root{--ink:#152238;--muted:#6d7c91;--line:#e2e6ff;--paper:#f7fbff;--card:#fff;--accent:#08c7e8;--soft:#eef8ff;--green:#12bfa8;--luma-blue:#168df2;--luma-cyan:#08c7e8;--luma-violet:#5a34f1;--luma-pink:#f45aa2;--luma-coral:#ff7f6f;--luma-peach:#ffb06f;--shadow:0 16px 42px #6b5cf026;--shadow-soft:0 8px 24px #5a34f11c}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:radial-gradient(circle at 82% 0,#dff4ff 0,transparent 34%),linear-gradient(135deg,#f6fbff,#eef8ff 48%,#f8fcff);font-family:Montserrat,Arial,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:236px 1fr}.sidebar{height:100vh;position:-webkit-sticky;position:sticky;top:0;padding:30px 18px 20px;border-right:1px solid var(--line);background:#f8fcff;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;padding:0 10px 32px;font-size:24px}.brand-logo{width:34px;height:34px;object-fit:contain;display:block;filter:drop-shadow(0 10px 18px #478fd033)}.brand-mark{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--accent)}nav{display:grid;grid-gap:5px;gap:5px}.nav-item{display:flex;align-items:center;gap:12px;text-decoration:none;padding:11px 13px;border-radius:10px;transition:.18s}.nav-item:hover{color:var(--ink)}.nav-item.active{color:var(--ink);background:#dff4ff;font-weight:500}.sidebar-profile{margin-top:auto;padding:17px 8px 2px;border-top:1px solid var(--line);display:flex;gap:10px;align-items:center}.sidebar-profile span,.sidebar-profile strong{display:block;font-size:12px}.sidebar-profile span{color:var(--muted);margin-top:2px}.avatar{width:34px;height:34px;border-radius:50%;background:#d7f1ff;display:grid;place-items:center;font-weight:500}.main{padding:42px 4.4vw 70px;max-width:1500px;width:100%;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:30px}.page-header h1{font-family:Montserrat,Arial,sans-serif;font-size:36px;line-height:1.1;margin:4px 0 7px;font-weight:500}.page-header p{margin:0;color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:500}.button{border:0;border-radius:10px;padding:11px 16px;display:inline-flex;align-items:center;gap:8px;font-weight:500;background:var(--accent);color:#fff}.button:hover{filter:brightness(.95)}.button.secondary{color:var(--ink);border:1px solid var(--line)}.button.small{padding:8px 12px;font-size:12px}.period{display:flex;gap:5px;background:#e8f6ff;padding:4px;border-radius:10px}.period button{border:0;background:transparent;padding:7px 11px;border-radius:7px;color:var(--muted)}.period .selected{background:#fff;color:var(--ink);box-shadow:0 1px 4px #32211110}.metrics{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:12px;gap:12px;margin-bottom:28px}.metric{padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--card);min-width:0}.metric-label{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px}.metric-value{font-size:24px;letter-spacing:-.04em;margin:13px 0 7px;white-space:nowrap}.delta{color:var(--green);font-size:11px}.delta.neutral{color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:1.55fr 1fr;grid-gap:16px;gap:16px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.card h2{margin:0;font-size:15px}.card-note{color:var(--muted);font-size:11px}.chart{height:238px;gap:8px;border-bottom:1px solid var(--line);padding-top:12px}.bar-group,.chart{display:flex;align-items:flex-end}.bar-group{flex:1 1;height:100%;justify-content:center;gap:3px;position:relative}.bar{width:34%;border-radius:4px 4px 0 0;background:var(--luma-cyan);min-height:8px}.bar.alt{background:var(--luma-violet)}.bar-label{position:absolute;bottom:-24px;font-size:10px;color:var(--muted)}.source-row{display:grid;grid-template-columns:1fr auto;grid-gap:12px;gap:12px;margin:17px 0;align-items:center}.source-name{display:flex;align-items:center;gap:8px;font-size:12px}.dot{width:8px;height:8px;border-radius:50%}.source-value{font-weight:500;font-size:12px;white-space:nowrap}.track{grid-column:1/-1;height:5px;background:#e8f6ff;border-radius:4px;overflow:hidden}.track span{display:block;height:100%;border-radius:4px}.table-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.table-toolbar{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;gap:10px;justify-content:space-between;align-items:center}.filter-group{display:flex;gap:8px}.select{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 30px 8px 10px;color:#5d7186}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#7e9ab0;font-weight:500;padding:13px 20px;background:#f6fbff}.data-table td{padding:17px 20px;border-top:1px solid var(--line)}.data-table tr:first-child td{border-top:0}.channel-tag{display:inline-flex;align-items:center;gap:7px;font-weight:500}.amount{font-weight:500;text-align:right}.muted{color:var(--muted)}.status{padding:5px 8px;border-radius:20px;font-size:10px;background:#e9f2ed;color:#38715e}.modal-backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:20px;z-index:20;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{width:min(500px,100%);background:#fff;border-radius:16px;padding:25px;box-shadow:0 24px 70px #0003}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.modal-head h2{margin:0;font-family:Montserrat,Arial,sans-serif;font-size:24px}.icon-button{border:0;background:#eef8ff;border-radius:50%;width:34px;height:34px;display:grid;place-items:center}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.field{display:grid;grid-gap:7px;gap:7px;color:#5f7084;font-size:12px}.field.full{grid-column:1/-1}.field input,.field select,.field textarea{border:1px solid #cfe4f3;border-radius:9px;padding:11px 12px;outline:none;background:#fff;color:var(--ink);width:100%}.field input:focus,.field select:focus,.field textarea:focus{border-color:#62b7e3;box-shadow:0 0 0 3px #62b7e326}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:9px;margin-top:7px}.sources-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px;margin-bottom:18px}.source-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:19px}.source-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.source-icon{width:34px;height:34px;border-radius:10px}.source-card h3{margin:0;font-size:14px}.source-stats{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.source-stats span{font-size:10px;color:var(--muted);display:block;margin-bottom:3px}.source-stats strong{font-size:15px}.romi{margin-top:15px;padding-top:13px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.romi strong{color:var(--green)}.review-list{display:grid;grid-gap:12px;gap:12px}.review{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px}.review-top{display:flex;justify-content:space-between;gap:15px}.review-person{display:flex;gap:11px;align-items:center}.review-person span,.review-person strong{display:block}.review-person span{font-size:11px;color:var(--muted);margin-top:2px}.stars{color:#35aee2;letter-spacing:1px}.review p{margin:16px 0;line-height:1.65;color:#4d6075;max-width:750px}.review-foot{display:flex;justify-content:space-between;align-items:center}.review-date{color:var(--muted);font-size:11px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.settings-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}.settings-card h2{margin:0 0 5px;font-size:15px}.settings-card>p{color:var(--muted);font-size:12px;margin:0 0 22px}.settings-form{display:grid;grid-gap:14px;gap:14px}.branch{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-top:1px solid var(--line)}.branch span,.branch strong{display:block}.branch span{color:var(--muted);font-size:11px;margin-top:3px}.empty{text-align:center;padding:50px;color:var(--muted)}.empty-symbol{font-size:25px;margin-bottom:10px}.empty strong{color:var(--ink);display:block}.empty p{margin:6px 0}.table-toolbar>div strong,.toolbar-note{display:block}.toolbar-note{color:var(--muted);font-size:11px;margin-top:4px}.header-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.source-type{display:inline-flex;align-items:center;border-radius:20px;padding:6px 10px;font-size:10px;font-weight:500;white-space:nowrap}.source-type-paid{background:#f7e8e5;color:#a94f42}.source-type-free{background:#e7f3ed;color:#34765f}.source-type-partner{background:#e9edf8;color:#526aa0}.source-type-mixed{background:#f4ebda;color:#906c2d}.source-type-unknown{background:#efedef;color:#726c72}.activity-toggle{border:0;background:transparent;display:inline-flex;align-items:center;gap:8px;padding:0;color:#6d7c91}.activity-toggle span{width:30px;height:18px;background:#c8e7f7;border-radius:20px;position:relative;transition:.2s}.activity-toggle span:after{content:"";position:absolute;width:12px;height:12px;border-radius:50%;background:#fff;left:3px;top:3px;box-shadow:0 1px 3px #0002;transition:.2s}.activity-toggle b{font-size:11px;font-weight:500}.activity-toggle.is-active{color:#34765f}.activity-toggle.is-active span{background:#70ad97}.activity-toggle.is-active span:after{transform:translateX(12px)}.actions-cell{text-align:right!important;white-space:nowrap}.table-action{display:inline-grid;margin-left:6px;width:30px;height:30px;background:#eef8ff;color:#3d86ae}.inactive-row{opacity:.55;background:#f6fbff}.sources-table td{height:62px}.field small{color:var(--muted);font-size:10px;line-height:1.5}.auto-type{gap:7px;margin-top:2px}.auto-type,.source-filters{display:flex;align-items:center}.source-filters{justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px}.custom-dates,.source-filter-selects{display:flex;gap:8px;align-items:center}.custom-dates input{border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#fff;color:var(--ink)}.source-analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px;margin-bottom:24px}.source-analytics-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px}.source-analytics-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:20px}.source-analytics-head>div{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.source-analytics-head h2{margin:0;font-size:15px}.source-active,.source-inactive{font-size:10px;font-weight:500;color:#34765f;display:flex;align-items:center;gap:5px}.source-active:before,.source-inactive:before{content:"";width:6px;height:6px;background:#65a58e;border-radius:50%}.source-inactive{color:#6d7c91}.source-inactive:before{background:#b9b3ad}.source-primary-stats{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1px;gap:1px;background:var(--line);border-radius:10px;overflow:hidden;margin-bottom:15px}.source-primary-stats div{background:#f8fcff;padding:13px}.source-primary-stats span,.source-secondary-stats span{display:block;color:var(--muted);font-size:10px;margin-bottom:5px}.source-primary-stats strong{font-size:16px}.source-secondary-stats{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px}.source-secondary-stats strong{font-size:12px}.source-secondary-stats .positive{color:var(--green)}.analytics-empty{min-height:180px;border:1px dashed #d8d8ff;border-radius:14px;background:#fbf9ff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);gap:8px;margin-bottom:24px;padding:24px}.analytics-empty strong{color:var(--ink);font-size:13px}.analytics-empty span{font-size:11px}.loading-dot{width:12px;height:12px;border-radius:50%;background:linear-gradient(135deg,var(--luma-pink),var(--luma-cyan));animation:pulse 1s infinite alternate}@keyframes pulse{to{opacity:.25;transform:scale(.7)}}.source-settings{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}.source-settings-toggle{width:100%;border:0;background:#fff;padding:18px 20px;display:flex;justify-content:space-between;align-items:center;color:var(--ink)}.source-settings-toggle>div{display:flex;align-items:center;gap:11px;text-align:left}.source-settings-toggle small,.source-settings-toggle strong{display:block}.source-settings-toggle small{color:var(--muted);font-size:10px;margin-top:3px;font-weight:400}.source-settings-toggle>svg{transition:.2s}.source-settings.is-open .source-settings-toggle>svg{transform:rotate(180deg)}.source-settings-content{border-top:1px solid var(--line)}.table-scroll{overflow-x:auto}.expense-period{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.expense-mode{display:flex;background:#e5f4ff;padding:4px;border-radius:9px;width:max-content}.expense-mode button{border:0;background:transparent;color:var(--muted);padding:7px 13px;border-radius:7px;font-size:11px}.expense-mode button.active{background:#fff;color:var(--ink);font-weight:500;box-shadow:0 1px 4px #8fc9e626}.expense-hint{grid-column:1/-1;margin:0;padding:10px 12px;border-radius:8px;background:#eef8ff;color:#5e7288;font-size:10px;line-height:1.5}.marketing-expenses-block{margin:34px 0 22px;padding-top:30px;border-top:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:18px}.section-heading h2{font-family:Montserrat,Arial,sans-serif;font-size:25px;margin:4px 0}.section-heading p{margin:0;color:var(--muted);font-size:12px}.marketing-expense-summary{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px;margin-bottom:12px}.marketing-expense-summary>div{background:#fff;border:1px solid var(--line);border-radius:11px;padding:14px 17px}.marketing-expense-summary span{display:block;font-size:10px;color:var(--muted);margin-bottom:5px}.marketing-expense-summary strong{font-size:16px}.finance-filters{display:flex;gap:10px;margin-bottom:20px}.finance-filters label{display:grid;grid-gap:5px;gap:5px;color:var(--muted);font-size:10px}.finance-filters input,.finance-filters select{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 12px;color:var(--ink);min-width:190px}.expense-overview{display:grid;grid-template-columns:280px 1fr;grid-gap:14px;gap:14px;margin-bottom:18px}.expense-total-card{background:var(--accent);color:#fff;border-radius:14px;padding:24px;display:flex;flex-direction:column;justify-content:center}.expense-total-card span{font-size:11px;opacity:.75}.expense-total-card strong{font-size:28px;margin:9px 0}.expense-total-card small{opacity:.65}.expense-category-summary{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 20px;display:grid;grid-template-columns:repeat(2,1fr);grid-column-gap:25px;column-gap:25px}.expense-category-summary>div{display:grid;grid-template-columns:8px 1fr auto;grid-gap:9px;gap:9px;align-items:center;border-bottom:1px solid var(--line);font-size:11px}.expense-category-summary>div:nth-last-child(-n+2){border-bottom:0}.expense-category-summary i{width:7px;height:7px;border-radius:50%}.expense-category-summary strong{font-size:11px}.category-empty{grid-column:1/-1!important;display:flex!important;justify-content:center;color:var(--muted);border:0!important}.category-directory{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}.category-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px}.category-grid article{background:#f4fbff;border-radius:10px;padding:15px}.category-grid article>strong{font-size:12px}.category-grid ul{list-style:none;padding:0;margin:10px 0 0;display:grid;grid-gap:6px;gap:6px}.category-grid li{font-size:10px;color:#5f7084;line-height:1.35;padding-left:10px;position:relative}.category-grid li:before{content:"";width:3px;height:3px;border-radius:50%;background:#8bcdea;position:absolute;left:0;top:5px}.month-switcher{display:flex;align-items:center;gap:6px}.month-switcher input{min-width:160px}.month-arrow{width:36px;height:36px;border-radius:10px;color:#3d86ae;background:#fff;border:1px solid var(--line)}.icon-button.danger{color:#a6574c;background:#f8eeee}.danger-button{background:#a6574c}.confirm-content p{color:#625c56;line-height:1.65;margin:0 0 22px}.confirm-content .form-actions{display:flex}.settings-wide{grid-column:1/-1}.settings-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.settings-title-row p{color:var(--muted);font-size:12px;margin:5px 0 20px}.branch-actions{display:flex;align-items:center;gap:5px}.archived-branch{opacity:.62;background:#f6fbff;margin:0 -10px;padding-left:10px;padding-right:10px}.expense-chart-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 22px;display:grid;grid-template-columns:145px 1fr;grid-gap:24px;gap:24px;align-items:center}.donut{width:130px;height:130px;border-radius:50%;display:grid;place-items:center;position:relative}.donut:after{content:"";position:absolute;width:78px;height:78px;border-radius:50%}.donut span{z-index:1;text-align:center;font-size:19px;font-weight:500}.donut small{display:block;color:var(--muted);font-size:9px;font-weight:500;margin-top:2px}.expense-chart-legend{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px 20px;gap:10px 20px}.expense-chart-legend>div{display:grid;grid-template-columns:7px 1fr auto;align-items:center;grid-gap:7px;gap:7px;font-size:10px}.expense-chart-legend i{width:7px;height:7px;border-radius:50%}.expense-chart-legend strong{font-size:10px}.expense-trend-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;margin:-2px 0 18px;box-shadow:var(--shadow-soft)}.expense-trend-note{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px}.expense-trend-note i{width:7px;height:7px;border-radius:50%;margin-left:5px}.expense-trend-note .down{background:var(--green)}.expense-trend-note .up{background:var(--luma-coral)}.expense-trend-list{display:grid;grid-gap:15px;gap:15px}.expense-trend-row{display:grid;grid-gap:8px;gap:8px}.expense-trend-meta{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:16px;gap:16px}.expense-trend-name{display:flex;align-items:center;gap:8px;font-size:12px;color:#31465d}.expense-trend-name i{width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 3px #f0e9ff}.expense-trend-values{display:flex;align-items:center;gap:10px;white-space:nowrap}.expense-trend-values strong{font-size:12px}.expense-delta{min-width:74px;text-align:right;font-style:normal;font-size:11px;font-weight:500;border-radius:20px;padding:5px 8px;background:#f4f0ff;color:var(--muted)}.expense-delta.down{background:#e8fbf8;color:#0f9c8c}.expense-delta.new,.expense-delta.up{background:#fff0f3;color:#dd4f7d}.expense-delta.flat{background:#f4f0ff;color:#6d7c91}.expense-trend-track{height:10px;border-radius:999px;background:#f0e9ff;overflow:hidden}.expense-trend-track span{display:block;height:100%;border-radius:999px;box-shadow:0 4px 12px #7a4df52b}.category-directory{padding:0;overflow:hidden}.directory-toggle{width:100%;border:0;background:#fff;display:flex;justify-content:space-between;align-items:center;padding:19px 22px;text-align:left;color:var(--ink)}.directory-toggle h2{margin:0 0 4px;font-size:15px}.directory-toggle span{color:var(--muted);font-size:10px}.directory-toggle>svg{transition:.2s}.category-directory.is-open .directory-toggle>svg{transform:rotate(180deg)}.directory-content{border-top:1px solid var(--line);padding:18px 22px 22px}.directory-toolbar{display:flex;justify-content:flex-end;margin-bottom:13px}.category-card-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.category-card-head>span,.subcategory-actions{display:flex;gap:3px}.category-card-head button,.subcategory-actions button{border:0;background:transparent;padding:2px;color:#6d7c91}.category-card-head button:hover,.subcategory-actions button:hover{color:var(--ink)}.category-grid li{display:flex;justify-content:space-between;gap:5px;padding-right:0}.subcategory-actions{opacity:0}.category-grid li:hover .subcategory-actions{opacity:1}.add-subcategory{border:0;background:transparent;color:#4d7e9e;font-size:9px;display:flex;gap:4px;align-items:center;padding:9px 0 0}.collapsible-card{overflow:hidden}.collapsible-card .directory-toggle{background:linear-gradient(180deg,#ffffff,#f8fcff)}.collapsible-card.is-open .directory-toggle>svg{transform:rotate(180deg)}.chart-legend{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:9px}.chart-legend i{width:7px;height:7px;border-radius:2px;margin-left:5px}.chart-legend .income{background:linear-gradient(180deg,var(--luma-cyan),var(--luma-blue))}.chart-legend .expense{background:linear-gradient(180deg,var(--luma-coral),var(--luma-pink))}.chart-legend .plan{background:linear-gradient(180deg,var(--luma-violet),#2f59f4)}.income-bar{background:linear-gradient(180deg,var(--luma-cyan),var(--luma-blue))}.expense-bar{background:linear-gradient(180deg,var(--luma-coral),var(--luma-pink))}.plan-bar{background:linear-gradient(180deg,var(--luma-violet),#2f59f4)}.chart-legend .marketing{border-radius:50%}.chart-with-line{position:relative}.chart-with-line .bar-group{z-index:1}.marketing-expense-line{position:absolute;left:0;right:0;top:12px;bottom:0;width:100%;height:calc(100% - 12px);overflow:visible;pointer-events:none;z-index:2}.marketing-expense-line polyline{fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 0 #fff)}.dashboard-custom-period{display:flex;align-items:flex-end;justify-content:flex-end;gap:9px;margin:-12px 0 20px}.dashboard-custom-period label{display:grid;grid-gap:5px;gap:5px;color:var(--muted);font-size:9px}.dashboard-custom-period input{border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px 10px;color:var(--ink)}.expense-bar,.income-bar{min-height:0}.plan-progress-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;margin:-8px 0 28px}.plan-progress-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;min-width:0}.plan-progress-head{display:flex;justify-content:space-between;gap:12px;align-items:center;color:var(--muted);font-size:11px}.plan-progress-head strong{color:var(--green);font-size:15px}.plan-progress-values{margin:12px 0 10px;display:grid;grid-gap:3px;gap:3px}.plan-progress-values b{font-size:18px;letter-spacing:-.03em}.plan-progress-card small,.plan-progress-values span{color:var(--muted);font-size:10px}.mini-progress{height:7px;border-radius:10px;background:#f0e9ff;overflow:hidden;margin-bottom:9px}.mini-progress span{display:block;height:100%;border-radius:10px;background:linear-gradient(90deg,var(--luma-cyan),var(--luma-blue))}.mini-progress.neutral span{background:linear-gradient(90deg,var(--luma-violet),var(--luma-pink))}.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;margin:-12px 0 28px}.dashboard-kpi-card .plan-progress-values{margin-bottom:0}.plan-year{display:grid;grid-gap:5px;gap:5px;color:var(--muted);font-size:10px}.plan-year input{border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px 12px;color:var(--ink);width:120px}.plan-metrics{grid-template-columns:repeat(4,1fr)}.plans-overview{display:grid;grid-template-columns:1.7fr .8fr;grid-gap:16px;gap:16px;margin-bottom:18px}.plan-hint-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}.plan-hint-card svg{color:#4aa5d6;margin-bottom:12px}.plan-hint-card h2{margin:0 0 10px;font-family:Montserrat,Arial,sans-serif;font-size:24px}.plan-hint-card p{margin:0 0 12px;color:var(--muted);line-height:1.65;font-size:12px}.plan-table-card{margin-bottom:18px}.save-indicator{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:11px}.plan-table{min-width:1260px}.plan-table td:first-child,.plan-table th:first-child{position:-webkit-sticky;position:sticky;left:0;background:#fff;z-index:1;min-width:260px;box-shadow:1px 0 0 var(--line)}.plan-table th:first-child{background:#f6fbff;z-index:2}.plan-table input{width:92px;border:1px solid #cfe4f3;border-radius:8px;padding:8px 9px;background:#fff;color:var(--ink);text-align:right}.plan-table input:focus{outline:0;border-color:#62b7e3;box-shadow:0 0 0 3px #62b7e326}.positive-cell{color:#34765f;font-weight:500}.negative-cell{color:#a6574c;font-weight:500}.annual-plan-settings{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px;padding:18px 20px;background:#fff}.annual-plan-field{display:grid;grid-gap:8px;gap:8px;border:1px solid var(--line);border-radius:12px;background:#f8fcff;padding:16px}.annual-plan-field span{color:var(--muted);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.06em}.annual-plan-field input{border:1px solid #cfe4f3;border-radius:9px;background:#fff;padding:11px 12px;color:var(--ink);font-size:18px;font-weight:500;letter-spacing:-.03em}.annual-plan-field input:focus{outline:0;border-color:#62b7e3;box-shadow:0 0 0 3px #62b7e326}.annual-plan-field small{color:var(--muted);font-size:10px;line-height:1.55}.table-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-top:1px solid var(--line);background:#f6fbff;color:var(--muted);font-size:11px}.pagination-controls{display:flex;align-items:center;gap:8px}.pagination-page{min-width:72px;text-align:center;color:var(--ink);font-weight:500}.pagination-button{width:32px;height:32px;border-radius:9px;border:1px solid var(--line);background:#fff;color:#3d86ae;display:grid;place-items:center;transition:.18s ease}.pagination-button:hover:not(:disabled){border-color:#bfe2f4;color:#125d8b;transform:translateY(-1px)}.pagination-button:disabled{opacity:.35;cursor:not-allowed}@media(max-width:1150px){.metrics{grid-template-columns:repeat(3,1fr)}.dashboard-kpi-grid,.sources-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.annual-plan-settings{grid-template-columns:1fr}}@media(max-width:760px){.app-shell{display:block}.sidebar{position:fixed;z-index:10;bottom:0;top:auto;width:100%;height:67px;padding:8px;border-right:0;border-top:1px solid var(--line)}.brand,.sidebar-profile{display:none}nav{display:flex;justify-content:space-around;overflow-x:auto}.nav-item{display:grid;grid-gap:3px;gap:3px;justify-items:center;padding:6px;font-size:9px;min-width:58px}.main{padding:28px 16px 95px}.page-header{align-items:flex-start}.page-header h1{font-size:29px}.metrics{grid-template-columns:1fr 1fr}.dashboard-grid,.dashboard-kpi-grid,.plan-progress-grid,.plans-overview,.settings-grid,.source-analytics-grid,.sources-grid{grid-template-columns:1fr}.table-card{overflow-x:auto}.data-table{min-width:680px}.form-grid{grid-template-columns:1fr}.field.full,.form-actions{grid-column:auto}.period:not(.source-period){display:none}.source-filters{align-items:stretch}.source-period{width:100%;overflow-x:auto}.source-filter-selects{width:100%}.source-filter-selects .select{flex:1 1;min-width:0}.source-primary-stats div{padding:10px}.custom-dates{width:100%}.custom-dates input{min-width:0;flex:1 1}.category-grid,.expense-category-summary,.expense-overview,.marketing-expense-summary{grid-template-columns:1fr}.section-heading{align-items:flex-start}.finance-filters{flex-direction:column}.finance-filters input,.finance-filters select{width:100%}.plan-metrics{grid-template-columns:1fr 1fr}.plan-table td:first-child,.plan-table th:first-child{position:static;box-shadow:none}}.sidebar{background:linear-gradient(180deg,#f8fcff,#eaf6ff);border-right:1px solid #d7eaf7;box-shadow:8px 0 28px #6eaed21a}.brand{color:var(--ink);text-decoration:none;font-family:Montserrat,Arial,sans-serif;font-weight:500;letter-spacing:-.04em;border-radius:16px;transition:.18s ease}.brand:hover{transform:translateY(-1px);color:#0f6fa6}.brand-mark{background:linear-gradient(135deg,#7bd3ff,#4aa9df 52%,#72b8ff);color:#fff;box-shadow:0 12px 28px #45a8da42}.nav-item{color:#58708b}.nav-item:hover{background:#e8f6ff;color:#125d8b;box-shadow:0 8px 20px #8fc9e61f}.nav-item.active{background:linear-gradient(135deg,#dff4ff,#f7fcff);color:#0d5c8e;box-shadow:inset 0 0 0 1px #c9e8f8,0 10px 24px #8fc9e626}.modal-head h2,.page-header h1,.plan-hint-card h2,.section-heading h2{font-family:Montserrat,Arial,sans-serif;font-weight:500;letter-spacing:-.055em}.eyebrow{color:#4aa5d6}.button{background:linear-gradient(135deg,#4ab1e6,#2c91ca);box-shadow:0 12px 24px #399bd035;transition:.18s ease}.button:hover{filter:none;transform:translateY(-1px);box-shadow:0 16px 30px #399bd045}.button.secondary{background:#fff;color:#155f8d;border-color:#cfe6f4;box-shadow:var(--shadow-soft)}.annual-plan-field,.card,.category-directory,.expense-chart-card,.expense-trend-card,.marketing-expense-summary>div,.metric,.plan-hint-card,.plan-progress-card,.settings-card,.source-analytics-card,.source-card,.source-settings,.table-card{background:linear-gradient(180deg,#ffffff,#f8fcff);border-color:#dcecf7;box-shadow:var(--shadow-soft)}.metric{box-shadow:var(--shadow)}.metric-value{color:#132a44;font-weight:500}.data-table th,.table-pagination,.table-toolbar{background:linear-gradient(180deg,#f6fbff,#edf8ff)}.data-table td{border-top-color:#e1eef7}.annual-plan-field input,.dashboard-custom-period input,.field input,.field select,.field textarea,.finance-filters input,.finance-filters select,.plan-table input,.plan-year input,.select{border-color:#cfe4f3;background:#fbfdff;color:var(--ink)}.annual-plan-field input:focus,.field input:focus,.field select:focus,.field textarea:focus,.plan-table input:focus{border-color:#62b7e3;box-shadow:0 0 0 4px #62b7e326}.expense-mode,.period{background:#e5f4ff}.expense-mode button.active,.period .selected{color:#0f5f8e;box-shadow:0 8px 20px #8fc9e626}.icon-button,.month-arrow,.pagination-button,.table-action{background:#eef8ff;color:#3d86ae;border-color:#d5eaf7}.icon-button:hover,.pagination-button:hover:not(:disabled),.table-action:hover{color:#0f6697;border-color:#bfe2f4}.avatar{background:linear-gradient(135deg,#d7f1ff,#a9dcf7);color:#115d8d}.expense-total-card{background:linear-gradient(135deg,var(--luma-violet) 0,var(--luma-blue) 52%,var(--luma-cyan) 100%);box-shadow:0 18px 38px #5a34f13a}.donut:after{background:#fff;box-shadow:inset 0 0 0 1px #e6f2fa}.chart-legend .income,.income-bar{background:linear-gradient(180deg,var(--luma-cyan),var(--luma-blue))}.chart-legend .expense,.expense-bar{background:linear-gradient(180deg,var(--luma-coral),var(--luma-pink))}.chart-legend .plan,.plan-bar{background:linear-gradient(180deg,var(--luma-violet),#2f59f4)}.marketing-expense-line polyline{stroke:var(--luma-pink)}.chart-legend .marketing{background:linear-gradient(135deg,var(--luma-pink),var(--luma-peach))}.source-type-paid{background:#e9f5ff;color:#1975a7}.source-type-free{background:#e8f8f3;color:#23886f}.source-type-partner{background:#edf4ff;color:#4776b0}.source-type-mixed{background:#eef8ff;color:#3f87aa}.source-type-unknown{background:#f1f5f9;color:#64748b}.status{background:#e8f8f3;color:#23886f}.status.pending{background:#edf6ff;color:#3d7da5}.activity-toggle.is-active span{background:#60bce8}.modal{box-shadow:0 28px 80px #2777a938}.modal-backdrop{background:#0f314f66}.danger-button{background:linear-gradient(135deg,#e08383,#bf5555)}.icon-button.danger{color:#bf5555;background:#fff0f0}.annual-plan-settings{background:linear-gradient(180deg,#fbfdff,#eef8ff)}.contact-line{display:flex!important;align-items:center;gap:6px;color:var(--muted);font-size:11px;margin-top:4px}.contact-line svg{color:#55aee0}@media(max-width:760px){.main{padding-top:64px}}.main .annual-plan-field,.main .card,.main .category-directory,.main .expense-category-summary,.main .expense-chart-card,.main .expense-trend-card,.main .marketing-expense-summary>div,.main .metric,.main .plan-hint-card,.main .plan-progress-card,.main .settings-card,.main .source-analytics-card,.main .source-card,.main .source-settings,.main .table-card{background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(248,252,255,.72));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.main .annual-plan-settings,.main .data-table th,.main .source-primary-stats div,.main .table-pagination,.main .table-toolbar{background:linear-gradient(180deg,rgba(246,251,255,.72),rgba(237,248,255,.72));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.main .expense-total-card{background:linear-gradient(135deg,rgba(90,52,241,.84),rgba(22,141,242,.84) 52%,rgba(8,199,232,.84));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.activity-toggle b,.amount,.annual-plan-field input,.annual-plan-field span,.brand,.button,.card h2,.data-table th,.donut span,.expense-total-card strong,.metric-label,.metric-value,.modal-head h2,.nav-item.active,.page-header h1,.pagination-page,.plan-hint-card h2,.plan-progress-head strong,.plan-progress-values b,.section-heading h2,.settings-card h2,.source-active,.source-card h3,.source-inactive,.source-primary-stats strong,.source-secondary-stats strong,.source-type,.source-value,.status,.table-toolbar strong,b,strong,th{font-weight:500!important}.login-page{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at top left,#d8f2ff 0,#f4fbff 38%,#eaf7ff 100%)}.login-card{width:min(440px,100%);background:rgba(255,255,255,.78);border:1px solid #d7edf9;border-radius:28px;padding:32px;box-shadow:0 24px 70px #2b8fbd24;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.login-brand{display:inline-flex;align-items:center;gap:10px;color:#155f8d;font-weight:500;margin-bottom:24px}.login-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:20px;color:#0f7fb7;background:linear-gradient(135deg,#e2f6ff,#f7fcff);border:1px solid #d4edf8;box-shadow:0 14px 32px #4aa8d626;margin-bottom:18px}.login-card h1{margin:0 0 10px;font-size:28px;font-weight:500;letter-spacing:-.03em}.login-card p{margin:0 0 24px;color:var(--muted);line-height:1.55}.login-form{display:grid;grid-gap:14px;gap:14px}.login-form label{display:grid;grid-gap:8px;gap:8px;color:#4f647a;font-size:13px;font-weight:500}.login-form input{border:1px solid #cfe6f4;border-radius:14px;padding:13px 14px;background:rgba(255,255,255,.82);color:var(--ink);outline:none}.login-form input:focus{border-color:#78c7ec;box-shadow:0 0 0 4px #bfeaff66}.login-form .button{justify-content:center;margin-top:4px}.toolbar-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.source-card-toggle{width:100%;border:0;background:transparent;color:inherit;text-align:left;padding:0}.source-category-card .source-analytics-head svg{transition:.2s ease}.source-category-card.is-open .source-analytics-head svg{transform:rotate(180deg)}.source-substats{margin-top:16px;border-top:1px solid var(--line);padding-top:10px;display:grid;grid-gap:8px;gap:8px}.source-substat-row{display:grid;grid-template-columns:1.4fr auto auto auto;grid-gap:10px;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #e9f3fa;font-size:11px}.source-substat-row:last-child{border-bottom:0}.source-substat-row>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.source-substat-row span{color:var(--muted);white-space:nowrap}.source-indent{display:inline-flex;width:22px;color:#7e9ab0}.source-directory-toggle{border:0;background:transparent;color:var(--ink);display:inline-flex;align-items:center;gap:9px;text-align:left;padding:0}.source-directory-toggle svg{color:#4d94bc;transition:.18s ease}.source-directory-toggle.is-open svg{transform:rotate(180deg)}.source-directory-toggle small,.source-directory-toggle span,.source-directory-toggle strong{display:block}.source-directory-toggle small{color:var(--muted);font-size:10px;margin-top:3px}.login-form .button:disabled{opacity:.7;cursor:default;transform:none}.login-error{border:1px solid #f0c6c6;background:#fff3f3;color:#a04444;border-radius:12px;padding:10px 12px;font-size:13px}