#root{box-sizing:border-box;width:100%;min-height:100svh}html{margin:0;padding:0}body{margin:0}button,input,select,textarea{font:inherit}*{box-sizing:border-box}html,body,#root{width:100%;max-width:100%;overflow-x:hidden}:root{--bg:#c8c0b4;--bg-deep:#b6ad9f;--paper:#f6eee2;--paper-dark:#eadcc9;--hero-paper:#f6eee2e6;--ink:#23384a;--ink-dark:#162738;--muted:#665f57;--coral:#e76f51;--coral-dark:#b84a36;--orange-soft:#f4a261;--sage-soft:#d8dfd3;--blue-soft:#dbe4ea;--sand-soft:#f1dfc5;--line:#2d2a26;--soft-line:#2d2a262e;--table-header:#23384a14;--table-stripe:#23384a0b;--table-hover:#23384a1a;--danger:#b23a48;--success:#3f7a58}body{background:radial-gradient(circle at 12% 10%, #e76f5114, transparent 26%), radial-gradient(circle at 88% 4%, #23384a14, transparent 30%), linear-gradient(90deg, #2d2a2609 1px, transparent 1px), linear-gradient(#2d2a2609 1px, transparent 1px), linear-gradient(180deg, var(--bg) 0%, var(--bg-deep) 100%);color:var(--ink);background-size:auto,auto,24px 24px,24px 24px,auto;margin:0;font-family:Georgia,Times New Roman,serif}.app{width:100%;min-height:100vh;padding:34px}.hero{background:var(--hero-paper);border:2px solid var(--line);border-radius:14px;max-width:1200px;margin:0 auto 30px;padding:28px 30px 26px;box-shadow:8px 8px #2d2a26db,inset 0 1px #ffffff59}.eyebrow{background:var(--ink);color:var(--paper);border:2px solid var(--line);letter-spacing:.16em;text-transform:uppercase;margin:0 0 12px;padding:6px 10px;font-size:12px;font-weight:800;display:inline-block;box-shadow:3px 3px #2d2a2647}.hero h1{color:var(--ink-dark);letter-spacing:-.03em;margin:0;font-size:58px;line-height:.95}.intro{max-width:780px;color:var(--muted);margin:14px 0 0;font-size:18px;line-height:1.45}.dashboard-grid{grid-template-columns:.9fr 1.1fr;align-items:start;gap:24px;max-width:1200px;margin:0 auto;display:grid}.retro-card{background:var(--paper);border:2px solid var(--line);border-radius:14px;padding:24px;box-shadow:8px 8px #2d2a26db,inset 0 1px #ffffff59}.retro-card:first-child,.retro-card:nth-child(2){border-top:2px solid var(--line)}.card-header{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:22px;display:flex}.retro-card h2{color:var(--ink-dark);letter-spacing:-.02em;margin:0;font-size:31px}.badge{background:var(--paper-dark);color:var(--ink-dark);border:2px solid var(--line);white-space:nowrap;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:800;display:inline-block;box-shadow:3px 3px #2d2a2642}.summary-row{border-top:2px solid var(--line);border-left:2px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid}.summary-row div{border-right:2px solid var(--line);border-bottom:2px solid var(--line);background:#eadbc8;padding:16px}.summary-row div:first-child{background:var(--blue-soft)}.summary-row div:nth-child(2){background:var(--sand-soft)}.summary-row div:nth-child(3){background:var(--sage-soft)}.summary-row-secondary div:first-child{background:#c7d7df}.summary-row-secondary div:nth-child(2){background:#e7cba6}.summary-row-secondary div:nth-child(3){background:#c5d5c5}.summary-row span{color:var(--muted);margin-bottom:8px;font-size:14px;display:block}.summary-row strong{color:var(--ink-dark);font-size:22px}.section-title{color:var(--coral-dark);text-transform:uppercase;letter-spacing:.11em;margin:24px 0 8px;font-size:18px}.budget-table{border-top:0px solid var(--line);width:100%;margin-top:0;overflow-x:auto}.budget-table-header,.budget-table-row{border-bottom:1px solid var(--soft-line);grid-template-columns:minmax(150px,1.5fr) repeat(3,minmax(85px,1fr));align-items:center;gap:12px;padding:10px 8px;display:grid}.budget-table-header{color:var(--ink-dark);text-transform:uppercase;letter-spacing:.075em;border-bottom:2px solid var(--line);background:#23384a21;font-size:13px;font-weight:900}.budget-table-row{background:#ffffff0d;font-size:15px}.budget-table-row:nth-child(2n){background:var(--table-stripe)}.budget-table-row:hover{background:var(--table-hover)}.budget-table-row span{font-weight:700}.budget-table-row strong,.budget-table-header span:not(:first-child){text-align:right;white-space:nowrap}.budget-table-row strong{color:var(--ink-dark);font-size:15px}.status-text,.error-text{max-width:1200px;margin:0 auto 20px;font-weight:700}.error-text{color:var(--danger)}.transaction-panel{margin-top:28px;padding-top:4px}.transaction-form{gap:14px;margin-top:12px;display:grid}.transaction-form label{color:var(--ink-dark);gap:6px;font-size:14px;font-weight:800;display:grid}.transaction-form input,.transaction-form select{width:100%;color:var(--ink-dark);background:#ffffff61;border:2px solid #2d2a266b;border-radius:8px;outline:none;padding:11px 12px}.transaction-form input:focus,.transaction-form select:focus{border-color:var(--ink-dark);box-shadow:0 0 0 3px #23384a1f}.transaction-form button{background:var(--ink);color:var(--paper);border:2px solid var(--line);cursor:pointer;border-radius:999px;margin-top:6px;padding:12px 14px;font-weight:900;box-shadow:4px 4px #2d2a264d}.transaction-form button:hover{transform:translateY(-1px);box-shadow:5px 5px #2d2a265c}.transaction-form button:disabled{cursor:not-allowed;opacity:.65;transform:none}.success-text{max-width:1200px;color:var(--success);margin:0 auto 20px;font-weight:800}.transactions-section{margin-top:30px}.empty-text{color:var(--muted);margin:12px 0 0;font-weight:700}.transaction-list{border-top:2px solid var(--line);width:100%;margin-top:10px;overflow-x:auto}.transaction-list-header,.transaction-list-row{border-bottom:1px solid var(--soft-line);grid-template-columns:minmax(90px,.8fr) minmax(140px,1.4fr) minmax(120px,1fr) minmax(90px,.8fr) minmax(90px,.7fr);align-items:center;gap:12px;padding:10px 8px;display:grid}.transaction-list-header{color:var(--ink-dark);text-transform:uppercase;letter-spacing:.075em;border-bottom:2px solid var(--line);background:#23384a21;font-size:13px;font-weight:900}.transaction-list-row{background:#ffffff0d;font-size:15px}.transaction-list-row:nth-child(2n){background:var(--table-stripe)}.transaction-list-row:hover{background:#23384a1a}.transaction-list-header span,.transaction-list-row span,.transaction-list-row strong{text-align:left}.transaction-list-header span:nth-child(4),.transaction-list-row strong:nth-child(4){text-align:right}.transaction-list-header span:nth-child(5),.transaction-actions{text-align:right;justify-content:flex-end}.transaction-income{color:var(--success)}.transaction-expense{color:var(--ink-dark)}.delete-transaction-button{color:var(--danger);cursor:pointer;background:0 0;border:2px solid #b23a488c;border-radius:999px;justify-self:end;padding:7px 10px;font-weight:900}.delete-transaction-button:hover{border-color:var(--danger);background:#b23a4814}.delete-transaction-button:disabled{cursor:not-allowed;opacity:.6}.transaction-form-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.cancel-edit-button{color:var(--ink-dark);cursor:pointer;background:0 0;border:2px solid #2d2a266b;border-radius:999px;margin-top:6px;padding:12px 14px;font-weight:900}.cancel-edit-button:hover{background:#23384a14}.transaction-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.edit-transaction-button{color:var(--ink-dark);cursor:pointer;background:0 0;border:2px solid #23384a73;border-radius:999px;padding:7px 10px;font-weight:900}.edit-transaction-button:hover{border-color:var(--ink-dark);background:#23384a14}.hero-top-row{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.month-selector{min-width:220px;color:var(--ink-dark);gap:6px;font-size:14px;font-weight:900;display:grid}.month-selector select{background:var(--paper);width:100%;color:var(--ink-dark);border:2px solid var(--line);border-radius:999px;outline:none;padding:11px 12px;font-weight:800;box-shadow:3px 3px #2d2a2633}.month-selector select:focus{border-color:var(--ink-dark);box-shadow:3px 3px #2d2a2633,0 0 0 3px #23384a1f}.month-selector-card{min-width:260px;margin-top:14px}.month-controls{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.create-month-button{background:var(--ink);color:var(--paper);border:2px solid var(--line);cursor:pointer;white-space:nowrap;border-radius:999px;padding:11px 14px;font-weight:900;box-shadow:3px 3px #2d2a2638}.create-month-button:hover{transform:translateY(-1px);box-shadow:4px 4px #2d2a2647}.create-month-button:disabled{cursor:not-allowed;opacity:.65;transform:none}.admin-nav-button{color:var(--ink-dark);cursor:pointer;white-space:nowrap;background:0 0;border:2px solid #23384a59;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:900;box-shadow:2px 2px #2d2a2629}.admin-nav-button:hover{border-color:var(--ink-dark);background:#23384a14;transform:translateY(-1px);box-shadow:3px 3px #2d2a2638}.category-edit-panel{background:#23384a0f;border:2px solid #2d2a263d;border-radius:12px;margin-bottom:26px;padding:16px}.category-form{gap:14px;margin-top:12px;display:grid}.category-form label{color:var(--ink-dark);gap:6px;font-size:14px;font-weight:800;display:grid}.category-form input,.category-form select{width:100%;color:var(--ink-dark);background:#ffffff61;border:2px solid #2d2a266b;border-radius:8px;outline:none;padding:11px 12px}.category-form input:focus,.category-form select:focus{border-color:var(--ink-dark);box-shadow:0 0 0 3px #23384a1f}.category-form-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.category-form-actions button[type=submit]{background:var(--ink);color:var(--paper);border:2px solid var(--line);cursor:pointer;border-radius:999px;margin-top:6px;padding:12px 14px;font-weight:900;box-shadow:4px 4px #2d2a264d}.category-form-actions button[type=submit]:hover{transform:translateY(-1px);box-shadow:5px 5px #2d2a265c}.category-form-actions button[type=submit]:disabled{cursor:not-allowed;opacity:.65;transform:none}.budget-table-header-with-action,.budget-table-row-with-action{grid-template-columns:minmax(150px,1.4fr) minmax(85px,.9fr) minmax(85px,.9fr) minmax(85px,.9fr) minmax(90px,.7fr)}.edit-category-button{color:var(--ink-dark);cursor:pointer;background:0 0;border:2px solid #23384a73;border-radius:999px;justify-self:end;padding:7px 10px;font-weight:900}.edit-category-button:hover{border-color:var(--ink-dark);background:#23384a14}.category-add-panel{background:#3f7a5812;border:2px solid #2d2a263d;border-radius:12px;margin-bottom:26px;padding:16px}.category-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.delete-category-button{color:var(--danger);cursor:pointer;background:0 0;border:2px solid #b23a488c;border-radius:999px;padding:7px 10px;font-weight:900}.delete-category-button:hover{border-color:var(--danger);background:#b23a4814}.delete-category-button:disabled{cursor:not-allowed;opacity:.6}.icon-button{justify-content:center;align-items:center;min-width:38px;height:38px;padding:0;font-size:20px;line-height:1;display:inline-flex}.edit-transaction-button,.edit-category-button{color:var(--ink-dark);cursor:pointer;background:0 0;border:2px solid #23384a73;border-radius:999px;font-weight:900}.edit-transaction-button:hover,.edit-category-button:hover{border-color:var(--ink-dark);background:#23384a14}.delete-transaction-button,.delete-category-button{color:var(--danger);cursor:pointer;background:0 0;border:2px solid #b23a488c;border-radius:999px;font-weight:900}.delete-transaction-button:hover,.delete-category-button:hover{border-color:var(--danger);background:#b23a4814}.delete-transaction-button:disabled,.delete-category-button:disabled{cursor:not-allowed;opacity:.6}.icon-symbol{display:inline-block;transform:scaleX(-1)rotate(-1deg)}.template-panel{margin-top:30px}.budget-template-table-header,.budget-template-table-row{grid-template-columns:minmax(70px,.5fr) minmax(150px,1.5fr) minmax(85px,.8fr) minmax(85px,.8fr) minmax(90px,.7fr)}.section-title-row{justify-content:space-between;align-items:center;gap:12px;margin:24px 0 8px;display:flex}.section-title-row .section-title{margin:0}.add-category-button{background:var(--ink);color:var(--paper);border:2px solid var(--line);cursor:pointer;border-radius:999px;font-weight:900;box-shadow:3px 3px #2d2a263d}.add-category-button:hover{transform:translateY(-1px);box-shadow:4px 4px #2d2a264d}.modal-backdrop{z-index:50;background:#16273885;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal-card{background:var(--paper);border:2px solid var(--line);border-radius:14px;width:min(560px,100%);max-height:calc(100vh - 36px);padding:24px;overflow-y:auto;box-shadow:8px 8px #2d2a26db,inset 0 1px #ffffff59}.modal-header{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:22px;display:flex}.modal-header h2{color:var(--ink-dark);letter-spacing:-.02em;margin:0;font-size:31px}.modal-close-button{color:var(--ink-dark);cursor:pointer;background:0 0;border:2px solid #23384a73;border-radius:999px;font-weight:900}.month-card-actions{align-items:center;gap:8px;display:flex}.add-month-button{background:var(--ink);color:var(--paper);border:2px solid var(--line);cursor:pointer;border-radius:999px;font-weight:900;box-shadow:3px 3px #2d2a2638}.add-month-button:hover{transform:translateY(-1px);box-shadow:4px 4px #2d2a2647}.add-month-button:disabled{cursor:not-allowed;opacity:.65;transform:none}.delete-month-button{color:var(--danger);cursor:pointer;background:0 0;border:2px solid #b23a488c;border-radius:999px;font-weight:900}.delete-month-button:hover{border-color:var(--danger);background:#b23a4814}.section-toggle-button{width:100%;color:var(--coral-dark);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:0;font-family:inherit;display:flex}.section-toggle-button .section-title{margin:0}.section-toggle-button span:last-child{min-width:32px;height:32px;color:var(--ink-dark);border:2px solid #23384a59;border-radius:999px;justify-content:center;align-items:center;font-size:20px;font-weight:900;display:inline-flex}.section-toggle-button:hover span:last-child{border-color:var(--ink-dark);background:#23384a14}.danger-action-button{background:var(--danger);color:var(--paper);border:2px solid var(--line);cursor:pointer;border-radius:999px;margin-top:6px;padding:12px 14px;font-weight:900;box-shadow:4px 4px #2d2a264d}.danger-action-button:hover{transform:translateY(-1px);box-shadow:5px 5px #2d2a265c}.summary-mobile{display:none}@media (width<=760px){.summary-desktop{display:none}.summary-mobile{gap:10px;display:grid}.summary-mobile-card{border:2px solid var(--line);background:var(--blue-soft);padding:12px}.summary-mobile-card:nth-child(2){background:var(--sand-soft)}.summary-mobile-card:nth-child(3){background:var(--sage-soft)}.summary-mobile-card h3{color:var(--ink-dark);margin:0 0 8px;font-size:17px}.summary-mobile-card div{border-top:1px solid var(--soft-line);justify-content:space-between;align-items:center;gap:10px;padding:6px 0;display:flex}.summary-mobile-card span{color:var(--muted);font-size:14px;font-weight:700}.summary-mobile-card strong{color:var(--ink-dark);white-space:nowrap;font-size:18px}.budget-table-row span[data-label],.budget-table-row strong[data-label]{justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.budget-table-row span[data-label]:before,.budget-table-row strong[data-label]:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:800}.budget-table-row span[data-label=Kategori]{color:var(--ink-dark);margin-bottom:4px;font-size:18px;font-weight:900;display:block}.budget-table-row span[data-label=Kategori]:before{display:none}.budget-table-row strong[data-label]{border-top:1px solid var(--soft-line);padding:5px 0}.budget-table-row-with-action{padding:14px 0}.transaction-list-row span[data-label],.transaction-list-row strong[data-label]{justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.transaction-list-row span[data-label]:before,.transaction-list-row strong[data-label]:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:800}.transaction-list-row strong[data-label=Beskrivning]{color:var(--ink-dark);font-size:18px;font-weight:900;display:block}.transaction-list-row strong[data-label=Beskrivning]:before{display:none}.transaction-list-row span[data-label],.transaction-list-row strong[data-label]{padding:5px 0}.transaction-list-row span[data-label=Kategori],.transaction-list-row strong[data-label=Belopp]{border-top:1px solid var(--soft-line)}.transaction-list-row span[data-label=Datum]{color:var(--muted);font-weight:800}.transaction-list-row span[data-label=Datum]:before{display:none}.transaction-list{border-top:none}.app{padding:10px}.hero{border-radius:12px;width:100%;margin:0 0 16px;padding:16px;box-shadow:4px 4px #2d2a26db,inset 0 1px #ffffff59}.eyebrow{letter-spacing:.1em;margin-bottom:10px;padding:5px 8px;font-size:10px}.hero h1{word-break:normal;font-size:36px;line-height:1}.intro{font-size:15px;line-height:1.4}.hero-top-row{flex-direction:column;gap:16px}.admin-nav-button{width:100%;padding:10px 12px}.dashboard-grid{grid-template-columns:1fr;gap:16px;width:100%}.retro-card{border-radius:12px;width:100%;padding:16px;box-shadow:4px 4px #2d2a26db,inset 0 1px #ffffff59}.card-header{flex-direction:column;gap:14px}.retro-card h2,.modal-header h2{font-size:28px;line-height:1.05}.month-selector,.month-selector-card{width:100%;min-width:0}.month-selector select{width:100%}.month-card-actions{justify-content:flex-start;align-items:center;width:100%}.add-month-button,.delete-month-button{width:44px;min-width:44px;height:44px}.summary-row{grid-template-columns:1fr}.summary-row div{padding:14px}.summary-row strong{font-size:24px}.section-title{letter-spacing:.09em;font-size:15px}.budget-table,.transaction-list{overflow-x:visible}.budget-table-header,.transaction-list-header{display:none}.budget-table-row,.budget-table-row-with-action,.budget-template-table-row,.transaction-list-row{border-bottom:2px solid var(--soft-line);grid-template-columns:1fr;gap:8px;min-width:0;padding:14px 0;display:grid}.budget-table-row>*,.transaction-list-row>*{text-align:left!important}.budget-table-row strong,.transaction-list-row strong{text-align:left}.category-actions,.transaction-actions{justify-content:flex-start;margin-top:4px}.transaction-form-actions,.category-form-actions{flex-direction:column;align-items:stretch}.transaction-form-actions button,.category-form-actions button{width:100%}.modal-backdrop{place-items:start center;padding:10px}.modal-card{border-radius:12px;width:100%;max-height:calc(100vh - 20px);padding:16px;box-shadow:4px 4px #2d2a26db,inset 0 1px #ffffff59}.modal-header{gap:10px}}
