:root{--black: #000;--green: #10b981;--green-dark: #059669;--slate: #475569;--slate-light: #94a3b8;--bg: #fff;--bg-alt: #f8faf9;--border: #e5e7eb;--mint: #ecfdf5;--serif: "Playfair Display", Georgia, serif;--sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--sans);color:var(--black);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}button,input,select{font:inherit;color:inherit}a,.link{color:var(--green-dark)}.app{max-width:1240px;margin:0 auto;padding:0 32px}.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.brand{display:flex;align-items:center;gap:14px}.lb{width:44px;height:44px;background:#000;border-radius:2px;display:flex;align-items:center;justify-content:center;flex:none}.lb img{width:30px;height:32px;object-fit:contain;display:block}.nm{font-weight:700;letter-spacing:.25em;font-size:17px;text-transform:uppercase;line-height:1}.sb{font-size:10.5px;color:var(--slate-light);letter-spacing:.15em;font-weight:500;text-transform:uppercase;margin-top:5px}.top-actions{display:flex;gap:10px;flex-wrap:wrap}.btn{background:var(--green-dark);color:#fff;border:1px solid var(--green-dark);border-radius:2px;padding:9px 16px;font-weight:600;cursor:pointer;letter-spacing:.01em}.btn:hover{background:#047857;border-color:#047857}.btn.ghost{background:#fff;color:var(--black);border-color:var(--border)}.btn.ghost:hover{border-color:var(--green-dark);color:var(--green-dark)}.add{background:none;border:none;color:var(--green-dark);font-weight:600;cursor:pointer;font-size:13px}.add:hover{text-decoration:underline}.link{background:none;border:none;cursor:pointer;text-decoration:underline;font-size:12px;display:block;padding:0}.x{background:none;border:none;color:var(--slate-light);cursor:pointer;font-size:18px;line-height:1;padding:0 4px}.x:hover{color:var(--black)}.label{display:flex;align-items:center;gap:12px;font-weight:700;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--green-dark);margin-bottom:12px}.label:before{content:"";width:28px;height:2px;background:var(--green);flex:none}h1,h2{font-family:var(--serif);font-weight:600;letter-spacing:-.015em;line-height:1.06}h1{font-size:48px}h2{font-size:30px;margin-bottom:14px}h1 em,h2 em{font-style:italic;color:var(--green-dark)}.sub{color:var(--slate);font-size:17px;max-width:720px;margin-top:16px;line-height:1.5}.hint{color:var(--slate);max-width:900px;margin-bottom:16px}.hint.small{font-size:12.5px;margin:12px 0 0}.muted{color:var(--slate-light)}.hero{padding:56px 0 36px}.block{padding:44px 0;border-top:1px solid var(--border)}.card{background:var(--bg-alt);border:1px solid var(--border);border-radius:2px;padding:20px}.controls{display:flex;gap:24px;align-items:flex-end;flex-wrap:wrap;margin-bottom:16px}.field{display:flex;flex-direction:column;gap:6px}.field.grow{flex:1 1 260px}.field>span{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--slate)}.field input,.field select{border:1px solid var(--border);background:#fff;padding:9px 12px;border-radius:2px;min-height:40px}.field input:focus,.field select:focus,.num:focus,.name-input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 2px #10b9812e}.seg{display:flex;border:1px solid var(--border);border-radius:2px;overflow:hidden;background:#fff}.seg button{border:none;background:none;padding:9px 14px;cursor:pointer;border-right:1px solid var(--border);min-height:40px}.seg button:last-child{border-right:none}.seg button.on{background:#000;color:#fff;font-weight:600}.assume{border-left:2px solid var(--green);background:var(--mint);padding:10px 14px;font-size:13px;color:var(--slate);margin-bottom:36px}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:2px}table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}th,td{border-bottom:1px solid var(--border);padding:6px 10px;text-align:right;white-space:nowrap}thead th{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--slate);background:var(--bg-alt);padding:12px 10px}th.line{text-align:left;font-weight:500;min-width:220px}thead th.line{font-weight:700}td.proj,th.proj{background:var(--mint)}thead th.proj{color:var(--green-dark);background:#e3f7ee}td.method,th.method{text-align:left;color:var(--slate-light);font-size:12px;min-width:150px}.section-row th{text-align:left;background:#fff;padding-top:18px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--green-dark)}.section-row th span{margin-right:16px}.total-row th,.total-row td{font-weight:600}.total-row.minor th,.total-row.minor td{font-weight:500;color:var(--slate)}.total-row.sub th,.total-row.sub td{border-top:1px solid #cbd5e1}.total-row.key th,.total-row.key td{border-top:2px solid #000;font-weight:700;font-size:15px}.line-inner{display:flex;align-items:center;gap:8px}.name{padding:6px 0}.name-input{border:1px solid transparent;background:transparent;padding:6px 8px;border-radius:2px;flex:1;min-width:120px}.name-input:hover{border-color:var(--border)}.sign{width:24px;height:24px;flex:none;border-radius:2px;border:1px solid var(--border);background:#fff;cursor:pointer;font-weight:700}.sign.add{color:var(--green-dark);border-color:var(--green)}.num-wrap{position:relative;display:inline-block}.num{width:108px;text-align:right;border:1px solid var(--border);background:#fff;padding:6px 8px;border-radius:2px;font-variant-numeric:tabular-nums}.has-suffix .num{width:80px;padding-right:22px}.suffix{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:var(--slate-light);pointer-events:none}.num::placeholder{color:var(--slate-light)}.num.override{border-color:var(--green-dark);font-weight:600;color:var(--green-dark)}.num.invalid{border-color:#000;border-style:dashed}td.proj .num{background:#fff}.over{color:var(--green-dark)}.under{color:var(--black);font-weight:700}.ok{color:var(--green-dark);font-weight:700}.bad{font-weight:700;text-decoration:underline wavy var(--slate-light)}.strong{font-weight:700}.warn{border-left:3px solid #000;background:var(--bg-alt);padding:10px 14px;margin-bottom:14px;font-weight:600}.company{display:grid;gap:10px;max-width:560px}.company>div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--border);padding-bottom:8px}.company>div:last-child{border-bottom:none}.company .k{color:var(--slate)}.company .v{font-variant-numeric:tabular-nums}.total-tax{margin-top:24px;display:flex;align-items:baseline;justify-content:space-between;gap:20px;border-top:2px solid #000;padding-top:16px;max-width:560px}.total-tax span{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--slate)}.total-tax strong{font-family:var(--serif);font-size:36px;font-weight:600;color:var(--green-dark)}.how ul{list-style:none;display:grid;gap:10px;max-width:900px;color:var(--slate)}.how li{padding-left:18px;position:relative}.how li:before{content:"";position:absolute;left:0;top:.62em;width:8px;height:2px;background:var(--green)}.how strong{color:var(--black)}.toast{position:fixed;right:24px;bottom:24px;background:#000;color:#fff;padding:12px 18px;border-left:3px solid var(--green);z-index:10;max-width:420px}.toast.err{border-left-color:#fff}.foot{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--border);padding:28px 0 40px;flex-wrap:wrap}.foot p{font-weight:600}.foot p.muted{font-weight:400;font-style:italic;font-family:var(--serif)}@media (max-width: 720px){.app{padding:0 16px}h1{font-size:36px}}@media print{.no-print,.top-actions,.add,.x,.link{display:none!important}.block{break-inside:avoid}body{font-size:11px}}.assoc th.line{min-width:190px}.assoc .name-input{width:100%}.assoc .num{width:110px}.assoc .has-suffix .num{width:76px}.type-select{border:1px solid var(--border);background:#fff;padding:6px 8px;border-radius:2px;min-height:32px}.type-select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 2px #10b9812e}th.type-col,td.type-col{text-align:left}.tax-basis{display:block;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--slate-light)}.tax-basis.company{color:var(--green-dark)}.assoc th,.assoc td{padding-left:7px;padding-right:7px}.assoc thead th{letter-spacing:.08em}.assoc th.line{min-width:160px}.assoc .num{width:96px}.assoc .has-suffix .num{width:70px}.assoc thead th{white-space:normal;vertical-align:bottom;line-height:1.3}td.method{white-space:normal;max-width:170px;line-height:1.3}.dividends{margin-bottom:16px}.div-title{font-weight:600;margin-bottom:12px}.div-fields{display:flex;gap:24px;align-items:flex-end;flex-wrap:wrap}.div-fields .num{width:150px;min-height:40px}.div-facts{display:grid;gap:6px;margin-left:auto;min-width:320px}.div-facts>div{display:flex;justify-content:space-between;gap:16px;color:var(--slate);font-size:13px}.div-facts strong{color:var(--black);font-variant-numeric:tabular-nums}.warn.soft{border-left-color:var(--green);font-weight:500}.company-row th,.company-row td{background:var(--bg-alt)}.company-row .name{font-weight:600;display:block;padding:0}.fixed-share{display:inline-block;min-width:70px;padding:6px 8px;border:1px dashed var(--border);border-radius:2px;color:var(--slate);background:#f1f5f4;text-align:right;cursor:not-allowed}.sh-note{text-transform:none;letter-spacing:0;font-weight:400;font-size:12px}td.empty{text-align:left;color:var(--slate-light);font-style:italic;padding:14px 10px}td.left{text-align:left;font-size:12px;white-space:normal}.refund{color:var(--green-dark)}.tax-summary{margin-top:24px;display:grid;gap:8px;max-width:560px}.tax-summary>div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--border);padding-bottom:8px}.tax-summary span{color:var(--slate)}.tax-summary strong{font-variant-numeric:tabular-nums}.tax-summary+.total-tax{margin-top:8px}.basis-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px;color:var(--slate)}.basis-text strong{color:var(--black)}.seg.small button{min-height:32px;padding:6px 12px;font-size:13px}.company-table .num{width:92px}.company-table .has-suffix .num{width:66px}.tax-summary .refund,.tax-summary strong .refund{color:var(--green-dark)}.div-fields .num{font-size:15px}.company-table td .tax-basis{white-space:nowrap;letter-spacing:.04em}
