:root{--bg-top:#f7f8fc;--bg-bottom:#eceff7;--panel:#fff;--panel-2:#fbfcfe;--ink:#0f172a;--ink-soft:#475569;--ink-faint:#94a3b8;--line:#e8ebf2;--line-strong:#d5dbe7;--accent:#4f46e5;--accent-strong:#4338ca;--accent-grad:linear-gradient(135deg,#6366f1,#4f46e5);--accent-soft:#eef1ff;--accent-ring:rgba(79,70,229,.28);--warn:#dc2626;--warn-soft:#fef2f3;--below:#b45309;--below-soft:#fffaf0;--below-line:#f2dcae;--shadow-sm:0 1px 2px rgba(15,23,42,.05);--shadow:0 1px 2px rgba(15,23,42,.04),0 6px 20px -6px rgba(15,23,42,.1);--shadow-lg:0 2px 4px rgba(15,23,42,.04),0 14px 40px -10px rgba(15,23,42,.16);--radius:14px;--radius-sm:10px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{min-height:100vh;background:linear-gradient(180deg,var(--bg-top) 0,var(--bg-bottom) 100%);background-attachment:fixed;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Kaku Gothic ProN,Noto Sans JP,Meiryo,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}button{cursor:pointer}button,input,select{font-family:inherit;font-size:inherit}input,select{color:inherit}svg{display:block}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.wrap{max-width:1200px;margin:0 auto;padding:28px 24px 72px}.topbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.title{margin:0;font-size:25px;font-weight:800;letter-spacing:-.01em;line-height:1.2}.title small{display:block;font-size:13px;font-weight:400;color:var(--ink-soft);margin-top:5px;letter-spacing:.005em}.top-inputs{display:flex;gap:18px;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:11px;color:var(--ink-soft);font-weight:700;letter-spacing:.02em}.money-field{display:flex;align-items:center;gap:6px;width:210px;padding:10px 14px;background:var(--panel);border:1px solid var(--line-strong);border-radius:12px;box-shadow:var(--shadow-sm);transition:border-color .15s ease,box-shadow .15s ease}.money-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-ring)}.money-mark{color:var(--ink-faint);font-weight:700;font-size:16px}.money-input{flex:1 1;min-width:0;border:none;outline:none;background:transparent;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;font-size:18px;letter-spacing:-.01em}.notice{position:relative;margin-bottom:20px;background:linear-gradient(180deg,#fffdf7 0,var(--below-soft) 100%);border:1px solid var(--below-line);border-radius:var(--radius);padding:14px 18px 14px 46px;box-shadow:var(--shadow-sm)}.notice:before{content:"!";position:absolute;left:16px;top:15px;width:20px;height:20px;border-radius:50%;background:var(--below);color:#fff;font-size:13px;font-weight:800;line-height:20px;text-align:center}.notice-title{margin:0 0 6px;font-size:12px;font-weight:800;color:var(--below);letter-spacing:.04em}.notice-list{margin:0;padding-left:1.15em;font-size:13px;line-height:1.7;color:var(--ink)}.notice-list li{margin:3px 0}.bar-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:20px}.bar-hint{font-size:12px;color:var(--ink-faint);padding:4px 0}.bar-track{height:42px;width:100%;border-radius:12px;background:repeating-linear-gradient(45deg,#eef1f6,#eef1f6 7px,#e6eaf1 0,#e6eaf1 14px);box-shadow:inset 0 1px 3px rgba(15,23,42,.09);-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.bar-seg,.bar-track{position:relative;display:flex;overflow:hidden}.bar-seg{height:100%;align-items:center;justify-content:center;color:#fff;font-size:11.5px;font-weight:700;letter-spacing:.01em;text-shadow:0 1px 2px rgba(0,0,0,.22);min-width:0;white-space:nowrap}.bar-seg:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,hsla(0,0%,100%,.25),hsla(0,0%,100%,0) 45%,rgba(0,0,0,.12));pointer-events:none}.bar-handle{position:absolute;top:0;height:100%;width:16px;transform:translateX(-50%);cursor:ew-resize;z-index:3;display:flex;align-items:center;justify-content:center;touch-action:none}.bar-handle:before{content:"";width:4px;height:56%;border-radius:4px;background:hsla(0,0%,100%,.95);box-shadow:0 0 0 1px rgba(15,23,42,.18),0 1px 3px rgba(15,23,42,.25);transition:height .14s ease}.bar-handle:focus-visible:before,.bar-handle:hover:before{height:80%}.bar-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:16px}.legend-item{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600}.legend-dot{width:11px;height:11px;border-radius:4px;flex:none;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.3),0 1px 2px rgba(15,23,42,.15)}.legend-item .amt{color:var(--ink-soft);font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.legend-item.unalloc{color:var(--ink-faint);font-weight:500}.legend-item.unalloc .legend-dot{background:#cbd2e0}.legend-item.overflow{color:var(--warn);font-weight:700}.cols{display:grid;grid-template-columns:312px 1fr;grid-gap:20px;gap:20px;align-items:start}@media (max-width:900px){.cols{grid-template-columns:1fr}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;position:-webkit-sticky;position:sticky;top:20px}@media (max-width:900px){.panel{position:static}}.panel-title{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 14px}.region-row{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--line)}.region-row:last-of-type{border-bottom:none}.region-swatch{width:12px;height:12px;border-radius:4px;flex:none;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.35),0 1px 2px rgba(15,23,42,.18)}.region-name{flex:1 1;min-width:0;font-weight:700;display:flex;align-items:center;gap:6px}.tag{font-size:9px;font-weight:800;letter-spacing:.02em;color:var(--below);background:var(--below-soft);border:1px solid var(--below-line);border-radius:5px;padding:2px 5px;white-space:nowrap}.ratio-input{width:58px;padding:7px 8px;border:1px solid var(--line-strong);border-radius:9px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;background:var(--panel);transition:border-color .15s ease,box-shadow .15s ease}.ratio-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.ratio-pct{font-size:12px;width:10px;font-weight:600}.icon-btn,.ratio-pct{color:var(--ink-faint)}.icon-btn{border:none;background:transparent;padding:5px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.icon-btn:hover{color:var(--warn);background:var(--warn-soft)}.ratio-status{margin-top:14px;font-size:12.5px;padding:10px 12px;border-radius:10px;background:var(--accent-soft);color:var(--ink-soft);display:flex;justify-content:space-between;gap:8px;font-weight:600}.ratio-status.warn{background:var(--warn-soft);color:var(--warn);font-weight:700}.ratio-status .val{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:800}.panel-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.btn{border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);padding:9px 14px;border-radius:10px;font-size:12.5px;font-weight:700;display:inline-flex;align-items:center;gap:7px;transition:background .15s ease,border-color .15s ease,transform .12s ease,box-shadow .15s ease}.btn:hover{background:var(--panel-2);border-color:var(--ink-faint)}.btn:active{transform:translateY(1px)}.btn svg{width:16px;height:16px}.btn.primary{color:#fff;box-shadow:0 6px 16px -5px var(--accent-ring),0 1px 2px rgba(15,23,42,.1)}.btn.primary,.btn.primary:hover{background-image:var(--accent-grad);border-color:transparent}.btn.primary:hover{filter:brightness(1.06)}.btn:disabled{opacity:.5;cursor:not-allowed}.add-region{margin-top:14px;position:relative}.add-region select{width:100%;padding:10px 12px;border:1px dashed var(--line-strong);border-radius:10px;background:var(--panel-2);font-weight:700;color:var(--ink-soft);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;transition:border-color .15s ease,background .15s ease}.add-region select:hover{border-color:var(--accent);color:var(--accent)}.add-region:after{content:"";position:absolute;right:14px;top:50%;width:8px;height:8px;border-right:2px solid var(--ink-faint);border-bottom:2px solid var(--ink-faint);transform:translateY(-70%) rotate(45deg);pointer-events:none}.cards{display:flex;flex-direction:column;gap:16px}.empty-state{background:var(--panel);border:1px dashed var(--line-strong);border-radius:var(--radius);padding:52px 28px;text-align:center;color:var(--ink-faint);box-shadow:var(--shadow-sm)}.empty-state svg{width:40px;height:40px;margin:0 auto 14px;color:var(--line-strong)}.empty-state .empty-lead{font-size:14px;font-weight:700;color:var(--ink-soft);margin-bottom:4px}.card{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--c,var(--accent));border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;transition:box-shadow .18s ease,transform .18s ease}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card-head{display:flex;align-items:center;gap:11px;padding:15px 16px;border-bottom:1px solid var(--line)}.card-head .region-swatch{width:14px;height:14px}.card-head .name{font-size:16px;font-weight:800;display:flex;align-items:center;gap:8px}.card-head .region-amt{margin-left:auto;font-weight:800;font-size:16px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.01em}.card-head .region-pct{color:var(--ink-faint);font-size:12px;font-weight:700;margin-left:2px}.card-sub{padding:10px 16px;font-size:11.5px;color:var(--ink-soft);font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--panel-2);border-bottom:1px solid var(--line)}.mini-actions{display:flex;gap:6px}.mini-btn{border:1px solid var(--line-strong);background:var(--panel);color:var(--ink-soft);padding:4px 10px;border-radius:7px;font-size:11px;font-weight:700;transition:background .15s ease,color .15s ease,border-color .15s ease}.mini-btn:hover{background:var(--accent-soft);color:var(--accent);border-color:transparent}.tactic-list{list-style:none;margin:0;padding:6px 0}.tactic-row{display:flex;align-items:center;gap:11px;padding:9px 16px;cursor:pointer;border-left:3px solid transparent;transition:background .14s ease,border-color .14s ease}.tactic-row:hover{background:var(--panel-2)}.tactic-row.chosen{border-left-color:var(--c,var(--accent));background:linear-gradient(90deg,var(--accent-soft) 0,hsla(0,0%,100%,0) 60%)}.tactic-check{width:18px;height:18px;border:2px solid var(--line-strong);border-radius:6px;flex:none;display:flex;align-items:center;justify-content:center;color:#fff;transition:background .14s ease,border-color .14s ease}.tactic-check svg{width:12px;height:12px;opacity:0;transform:scale(.6);transition:opacity .14s ease,transform .14s ease}.tactic-row.chosen .tactic-check{background:var(--c,var(--accent));border-color:var(--c,var(--accent))}.tactic-row.chosen .tactic-check svg{opacity:1;transform:scale(1)}.tactic-name{flex:1 1;min-width:0;font-weight:600}.tactic-row:not(.chosen) .tactic-name{color:var(--ink-soft)}.tactic-amount{display:flex;align-items:center;gap:6px}.tactic-amount input{width:116px;padding:7px 10px;border:1px solid var(--line-strong);border-radius:9px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;background:var(--panel);transition:border-color .15s ease,box-shadow .15s ease}.tactic-amount input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.pin{border:1px solid transparent;background:transparent;padding:6px;border-radius:8px;line-height:1;color:var(--ink-faint);display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease,border-color .15s ease}.pin svg{width:15px;height:15px}.pin.locked,.pin:hover{color:var(--accent);background:var(--accent-soft)}.card-note{padding:12px 16px;font-size:12.5px;border-top:1px solid var(--line);line-height:1.55}.card-note.warn{color:var(--warn);background:var(--warn-soft);font-weight:600}.card-note.info{color:var(--ink-soft);background:var(--panel-2)}.summary-bar{margin-top:4px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.summary-figures{display:flex;gap:12px;flex-wrap:wrap}.figure{display:flex;flex-direction:column;gap:3px;padding:4px 18px 4px 0;border-right:1px solid var(--line)}.figure:last-child{border-right:none;padding-right:0}.figure .label{font-size:11px;color:var(--ink-soft);font-weight:700;letter-spacing:.03em}.figure .value{font-size:20px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.figure .value.warn{color:var(--warn)}.summary-actions{display:flex;align-items:center;gap:12px}.copied-toast{font-size:12px;color:var(--accent);font-weight:700}.quote-section{margin-top:20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 22px}.quote-title{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 6px}.quote-list{list-style:none;margin:10px 0 0;padding:0}.quote-item{display:grid;grid-template-columns:300px 1fr;grid-gap:14px;gap:14px;padding:11px 0;border-bottom:1px solid var(--line)}.quote-item:last-child{border-bottom:none}.quote-name{font-weight:700}.quote-countries{color:var(--ink-soft);font-size:13px;line-height:1.55}.quote-note{margin:16px 0 0;font-size:12.5px;color:var(--below);font-weight:700}@media (max-width:640px){.quote-item{grid-template-columns:1fr;gap:3px}.figure{border-right:none;padding-right:0}}