@font-face{font-family:"DM Sans";src:url("dm-sans.ttf") format("truetype");font-weight:100 900;font-style:normal;font-display:swap}
:root{--purple:#673DE6;--lilac:#7C67F5;--soft:#D9DBFF;--ink:#110C29;--pink:#E038B9;--line:#dfe2e8;--muted:#687084;--canvas:#f4f5f7;--sidebar:220px;--topbar:50px}
*{box-sizing:border-box}body{margin:0;font-family:"DM Sans",system-ui,sans-serif;color:#303747;background:var(--canvas);font-size:14px}.app-shell{min-height:100vh}
.topbar{position:sticky;top:0;z-index:30;height:var(--topbar);display:flex;align-items:center;background:#fff;border-bottom:1px solid #d9dce2;box-shadow:0 1px 3px rgba(17,12,41,.06)}.topbar-brand{width:var(--sidebar);height:100%;display:flex;align-items:center;padding:6px 16px;border-right:1px solid var(--line)}.topbar-brand img{width:132px;height:auto}.menu-toggle{margin-left:12px;border:0;background:transparent;color:#778091;font-size:18px}.topbar-context{display:flex;align-items:center;gap:12px;margin-left:16px}.topbar-context strong{font-size:14px}.header-kicker{font-size:11px;letter-spacing:.12em;color:var(--purple);font-weight:800}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:16px;padding-right:20px}.user-pill{display:flex;align-items:center;gap:8px;font-weight:700}.user-avatar{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:50%;color:#fff;background:linear-gradient(145deg,var(--purple),var(--pink));font-weight:800}
.app-frame{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:calc(100vh - var(--topbar))}.sidebar{padding:18px 8px;background:#f8f9fa;border-right:1px solid #d6dae1}.account-card{display:flex;align-items:center;gap:10px;margin:0 4px 14px;padding:10px;border:1px solid #d5dae2;border-radius:7px;background:#fff}.account-card strong,.account-card small{display:block}.account-card small{color:var(--muted);font-size:13px}.nav-caption{padding:18px 12px 7px;color:#8a91a0;font-size:11px;text-transform:uppercase;letter-spacing:.09em;font-weight:800}.sidebar .nav-link{display:flex;align-items:center;gap:11px;padding:9px 10px;color:#394150;font-weight:700;border-radius:6px}.sidebar .nav-link:hover{background:#edeffd;color:var(--purple)}.sidebar .nav-link.active{color:var(--ink);background:#fff;border:1px solid #d9dde5;box-shadow:0 1px 3px rgba(17,12,41,.05)}.nav-icon{display:block;flex:0 0 19px;width:19px;height:19px;color:#737b8b}.sidebar .nav-link:hover .nav-icon,.sidebar .nav-link.active .nav-icon{color:var(--purple)}
.workspace{min-width:0;padding:25px 26px 50px}.workspace>h1,.page-heading h1{font-size:22px;font-weight:800;color:#161c29;margin:0 0 20px}.page-heading{margin-bottom:18px}.page-heading h1{margin:2px 0 4px}.page-heading p{color:var(--muted);margin:0}.eyebrow{color:var(--purple);font-size:11px;letter-spacing:.13em;font-weight:800}
.welcome-card{position:relative;overflow:hidden;padding:30px;border:1px solid #dcdfe6;border-radius:8px;color:#fff;background:linear-gradient(120deg,var(--ink),#261b5b 65%,var(--purple));box-shadow:0 2px 5px rgba(17,12,41,.08)}.welcome-card h2{font-size:25px;margin:15px 0 8px}.welcome-card p{color:#ddd9ef}.welcome-orb{position:absolute;width:250px;height:250px;right:-45px;top:-100px;border-radius:50%;background:radial-gradient(circle,var(--pink),transparent 68%);opacity:.75}.badge-soft{display:inline-block;padding:5px 9px;border:1px solid rgba(255,255,255,.3);border-radius:15px;font-size:11px;font-weight:800;letter-spacing:.1em}
.card{border:1px solid #dce0e6;border-radius:7px;box-shadow:0 1px 4px rgba(17,12,41,.05)!important}.card-body{padding:20px}.table-responsive{margin-top:16px;background:#fff;border:1px solid #dce0e6;border-radius:7px;box-shadow:0 1px 4px rgba(17,12,41,.04)}.table{margin:0;--bs-table-bg:#fff}.table thead th{padding:11px;color:#323a4b;background:#f0f2f5;border-color:#dfe2e8;font-size:13px;font-weight:800;white-space:nowrap}.table tbody td{padding:12px;border-color:#e7e9ed;vertical-align:middle}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-bg-type:#fcfcfd}
.table thead th.sortable-column{cursor:pointer;user-select:none;transition:color .15s,background-color .15s}.table thead th.sortable-column::after{content:"↕";display:inline-block;margin-left:7px;color:#9299a7;font-size:12px}.table thead th.sortable-column:hover{color:var(--purple);background:#e9e7f8}.table thead th.sortable-column[data-sort-direction="asc"]::after{content:"↑";color:var(--purple)}.table thead th.sortable-column[data-sort-direction="desc"]::after{content:"↓";color:var(--purple)}
.form-control,.form-select{min-height:38px;border-color:#cfd4dc;border-radius:6px;font-size:14px}.form-control:focus,.form-select:focus{border-color:var(--lilac);box-shadow:0 0 0 .18rem rgba(103,61,230,.12)}.form-label{font-size:13px;font-weight:750}.btn{border-radius:6px;font-weight:700;font-size:14px}.btn-primary{--bs-btn-bg:var(--ink);--bs-btn-border-color:var(--ink);--bs-btn-hover-bg:var(--purple);--bs-btn-hover-border-color:var(--purple)}.btn-create{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 14px;line-height:1;white-space:nowrap}.btn-create-icon{font-size:20px;font-weight:400;line-height:0;transform:translateY(-1px)}.alert{border-radius:6px}.workspace small,.workspace .small{font-size:13px}
.auth-shell{min-height:100vh;background:radial-gradient(circle at 12% 15%,rgba(124,103,245,.28),transparent 30%),linear-gradient(135deg,#f8f7ff,#fff 52%,#f2efff)}.auth-content{display:grid;place-items:center;min-height:100vh}.auth-card{width:100%;max-width:430px;border:0;border-radius:12px;box-shadow:0 20px 55px rgba(17,12,41,.14)!important}.auth-card .card-body{padding:38px}.auth-logo{width:190px}.setup-card{max-width:650px}.logo-preview{max-width:260px;max-height:160px;object-fit:contain}
.budget-filter{max-width:720px}.budget-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.budget-summary>div{padding:15px 18px;background:#fff;border:1px solid var(--line);border-radius:7px}.budget-summary small,.budget-summary strong{display:block}.budget-summary small{font-size:11px;letter-spacing:.09em;color:var(--muted);font-weight:800}.budget-summary strong{margin-top:3px;font-size:18px;color:var(--ink)}.budget-client{overflow:hidden}.budget-client-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;background:#fff;border-bottom:1px solid var(--line)}.budget-client-heading h2{display:inline;margin:0 0 0 8px;font-size:17px}.client-code{padding:3px 7px;border-radius:4px;background:#eeeafe;color:var(--purple);font-size:12px;font-weight:800}.budget-table{min-width:1050px}.budget-alert{display:inline-block;padding:4px 7px;border:1px solid #a27800;border-radius:4px;color:#6f5200;background:#fff8dc;font-size:12px;font-weight:800}
.import-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.import-stats>div{display:flex;flex-direction:column;padding:16px;background:#fff;border:1px solid var(--line);border-radius:7px}.import-stats small{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.08em}.import-stats strong{color:var(--ink);font-size:24px}.import-stats span{color:var(--muted);font-size:12px}.import-stats .has-warning{border-color:#d7a828;background:#fffbeb}
.annual-budget-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.annual-budget-grid a{display:flex;flex-direction:column;padding:12px 14px;border:1px solid var(--line);border-radius:6px;color:var(--ink);text-decoration:none;background:#fafafe}.annual-budget-grid a:hover{border-color:var(--lilac);background:#f5f2ff}.annual-budget-grid small{color:var(--muted);font-size:11px;font-weight:800}.annual-budget-grid strong{margin-top:3px;font-size:15px}.annual-budget-total{display:flex;justify-content:flex-end;align-items:center;gap:18px;padding-top:14px;border-top:2px solid var(--ink)}.annual-budget-total span{font-weight:700}.annual-budget-total strong{font-size:22px;color:var(--purple)}
.client-notes{line-height:1.6;color:#454d5c}.client-website-field{display:flex;align-items:center;min-height:38px;overflow-wrap:anywhere}.client-website-field a{font-weight:700}
.document-with-copy{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.copy-icon-button{position:relative;display:inline-grid;place-items:center;width:27px;height:27px;padding:0;border:0;border-radius:50%;color:#7b8392;background:transparent;transition:color .15s,background-color .15s,transform .15s}.copy-icon-button:hover{color:var(--purple);background:#eeeafe}.copy-icon-button:active{transform:scale(.92)}.copy-icon-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.copy-check-icon{display:none}.copy-icon-button.is-copied{color:#16854b;background:#e8f7ef}.copy-icon-button.is-copied .copy-icon{display:none}.copy-icon-button.is-copied .copy-check-icon{display:block}.copy-icon-button::after{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + 7px);z-index:10;transform:translate(-50%,3px);padding:4px 7px;border-radius:4px;color:#fff;background:#222938;font-size:11px;font-weight:700;line-height:1;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s}.copy-icon-button:hover::after,.copy-icon-button:focus-visible::after,.copy-icon-button.is-copied::after{opacity:1;transform:translate(-50%,0)}.copy-icon-button.is-copied::after{background:#16854b}
.custom-months-card{padding:16px;border:1px solid #d8dbea;border-radius:7px;background:#fafafe}.month-grid{display:grid;grid-template-columns:repeat(12,minmax(48px,1fr));gap:8px}.month-option{position:relative;cursor:pointer}.month-option input{position:absolute;opacity:0;pointer-events:none}.month-option span{display:flex;align-items:center;justify-content:center;min-height:38px;padding:7px;border:1px solid #ccd1da;border-radius:6px;background:#fff;color:#4d5565;font-weight:700}.month-option input:checked+span{border-color:var(--purple);color:#fff;background:var(--purple);box-shadow:0 2px 5px rgba(103,61,230,.2)}.month-option input:focus-visible+span{outline:3px solid rgba(103,61,230,.3);outline-offset:2px}.custom-months-summary{padding:10px 12px;border-left:3px solid var(--purple);border-radius:4px;background:#f0edff;color:#40365f;font-weight:650}.custom-months-summary.has-warning{border-left-color:#c88a00;background:#fff7dc;color:#684900}.explanation-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.explanation-steps>div{padding:12px 14px;border:1px solid var(--line);border-radius:7px;background:#fafafe}.explanation-steps strong,.explanation-steps span{display:block}.explanation-steps strong{color:var(--purple)}.explanation-steps span{margin-top:3px;color:var(--muted);font-size:13px}
.print-report{margin:0 auto;padding:12mm;max-width:297mm;background:#fff;color:#000;font-family:"DM Sans",Arial,sans-serif;font-size:9pt}.print-header{display:flex;justify-content:space-between;align-items:start;border-bottom:2px solid #000;padding-bottom:5mm;margin-bottom:6mm}.print-header h1{font-size:20pt;margin:2mm 0 0}.print-header p{margin:1mm 0}.print-button{padding:7px 12px;background:#fff;border:1px solid #000;border-radius:4px}.print-client{margin-bottom:7mm;break-inside:avoid}.print-client h2,.print-reviews h2{font-size:11pt;margin:0 0 2mm}.print-report table{width:100%;border-collapse:collapse;table-layout:fixed}.print-report th,.print-report td{padding:2mm 1.5mm;border:1px solid #777;text-align:left;vertical-align:top;overflow-wrap:anywhere}.print-report th{font-weight:800;background:#fff}.print-report .print-due-day{width:22mm;text-align:center}.print-report small{display:block;margin-top:1mm}.print-report tfoot th{border-top:2px solid #000}.print-total{display:flex;justify-content:flex-end;gap:10mm;border-top:2px solid #000;padding-top:3mm;font-size:13pt}.print-reviews{margin-top:9mm}.print-report footer{margin-top:10mm;padding-top:3mm;border-top:1px solid #777;font-size:8pt}
*:focus-visible{outline:3px solid rgba(103,61,230,.4);outline-offset:2px}
@media(max-width:800px){.topbar-brand{width:auto;border:0}.topbar-brand img{width:120px}.topbar-context{display:none}.topbar-actions .user-pill span:last-child{display:none}.app-frame{display:block}.sidebar{display:none;border-bottom:1px solid var(--line)}.menu-open .sidebar{display:block}.account-card{display:none}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}.nav-caption{grid-column:1/-1}.workspace{padding:20px 14px}.welcome-card{padding:24px}.auth-card .card-body{padding:30px 24px}}
@media(max-width:800px){.budget-summary{grid-template-columns:1fr}.budget-client-heading{align-items:flex-start;flex-direction:column}}
@media(max-width:800px){.import-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.annual-budget-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.annual-budget-total{justify-content:space-between}}
@media(max-width:1000px){.month-grid{grid-template-columns:repeat(6,minmax(48px,1fr))}}
@media(max-width:800px){.explanation-steps{grid-template-columns:1fr}.month-grid{grid-template-columns:repeat(4,minmax(48px,1fr))}}
@page{size:A4 landscape;margin:9mm}@media print{.print-report{padding:0;max-width:none;font-size:7.5pt}.print-button{display:none}.print-client{break-inside:auto}.print-report thead{display:table-header-group}.print-report tr{break-inside:avoid}.print-header{margin-bottom:4mm}.print-report th,.print-report td{padding:1.4mm 1mm}.print-reviews{break-before:auto}}
