@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap";:root{color:#ebf0e9;font-synthesis:none;--bg:#0d1411;--rail:#101a16;--panel:#15211c;--panel-2:#1a2922;--ink:#ebf0e9;--muted:#81918a;--line:#293a32;--accent:#c7e45c;--accent-dark:#20301a;--cyan:#8dd4bf;--amber:#efb653;--red:#ed8376;background:#0d1411;font-family:Manrope,system-ui,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(850px 450px at 70% -5%, #203d2f, transparent 65%), var(--bg);min-width:320px;margin:0}body.light{--bg:#f4f6ef;--rail:#e8eee5;--panel:#fff;--panel-2:#edf3e9;--ink:#1c2820;--muted:#617268;--line:#d7e1d6;--accent:#547e24;--accent-dark:#eff7df;--cyan:#287d6c;--amber:#a66406;--red:#b54137;background:#f4f6ef}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.shell{min-height:100vh;display:flex}.rail{border-right:1px solid var(--line);background:var(--rail);flex-direction:column;flex:0 0 210px;width:210px;padding:28px 14px 20px;display:flex}.brand{letter-spacing:-.07em;color:var(--accent);padding:0 12px 42px;font-size:27px;font-weight:800;text-decoration:none}.brand span{color:var(--ink);font-weight:500}.rail-label,.eyebrow{color:var(--muted);letter-spacing:.15em;text-transform:uppercase;font:10px DM Mono,monospace}.rail-label{padding:0 12px 12px}.nav{gap:4px;display:grid}.nav a{color:var(--muted);border-radius:6px;padding:11px 12px;font-size:12px;font-weight:700;text-decoration:none}.nav a:hover,.nav a.active{color:var(--ink);background:var(--panel-2)}.nav a.active{box-shadow:inset 3px 0 var(--accent)}.rail-foot{border-top:1px solid var(--line);color:var(--cyan);margin-top:auto;padding:18px 12px;font:10px/1.8 DM Mono,monospace}.muted{color:var(--muted)}.pulse{background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 20%, transparent);border-radius:50%;margin-right:6px;display:inline-block}.main{flex:1;min-width:0}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:68px;padding:0 36px;display:flex}.crumb{color:var(--muted);letter-spacing:.12em;font:10px DM Mono,monospace}.crumb strong{color:var(--ink)}.icon-btn{border:1px solid var(--line);width:34px;height:34px;color:var(--muted);background:0 0;border-radius:6px;place-items:center;display:inline-grid}.icon-btn:hover{color:var(--ink);background:var(--panel-2)}.gear-icon{fill:currentColor;width:18px;height:18px}.today-content{max-width:1650px;padding:42px 36px 64px}.today-head{justify-content:space-between;align-items:end;gap:32px;margin-bottom:34px;display:flex}h1,h2,p{margin-top:0}h1{color:var(--ink);letter-spacing:-.08em;margin-bottom:0;font-size:clamp(36px,5vw,68px);line-height:.95}h2{letter-spacing:-.06em;margin-bottom:0;font-size:28px}.sub{max-width:650px;color:var(--muted);margin:12px 0 0;font-size:13px;line-height:1.65}.today-meta{min-width:280px;color:var(--muted);text-align:right;gap:5px;font:10px/1.4 DM Mono,monospace;display:grid}.today-meta strong{color:var(--ink);font:12px Manrope,sans-serif}.today-meta a,.text-link{color:var(--accent);text-decoration:none}.action-zone{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;align-items:center;margin-bottom:30px;padding:36px 24px 31px;display:flex}.active-strategy{color:var(--muted);letter-spacing:.1em;text-align:center;margin-bottom:20px;font:10px DM Mono,monospace}.active-strategy strong{color:var(--ink);letter-spacing:0;margin-left:10px;font:13px Manrope,sans-serif}.primary-action{border:1px solid var(--accent);min-width:260px;color:var(--accent-dark);background:var(--accent);letter-spacing:.05em;box-shadow:0 10px 32px color-mix(in srgb, var(--accent) 16%, transparent);border-radius:5px;padding:17px 26px;font-size:13px;font-weight:800}.primary-action:hover{filter:brightness(1.08);transform:translateY(-1px)}.stop-action{color:#fff;border-color:var(--red);background:var(--red)}.recalc-link{background:0 0;border:0;margin-top:14px;font-size:11px}.recalc-link span{color:var(--muted)}.run-progress{width:min(640px,100%);color:var(--muted);margin-top:25px;font:10px DM Mono,monospace}.run-progress strong{color:var(--ink);text-transform:uppercase}.run-progress span{float:right;color:var(--accent)}.progress-line,.score-bar{background:var(--panel-2);border-radius:5px;height:5px;overflow:hidden}.progress-line{margin-bottom:9px}.progress-line i,.score-bar i{border-radius:inherit;background:var(--accent);height:100%;transition:width .35s;display:block}.run-message{color:var(--cyan);margin-top:13px;font:11px DM Mono,monospace}.decision-tabs{gap:8px;margin-bottom:10px;display:flex}.decision-tabs button{border:1px solid var(--line);color:var(--muted);background:0 0;border-bottom-width:3px;border-radius:5px 5px 0 0;align-items:center;gap:9px;padding:12px 17px;font:11px DM Mono,monospace;display:flex}.decision-tabs button span{color:var(--ink)}.decision-tabs button.buy.selected{color:var(--accent);border-color:var(--accent)}.decision-tabs button.hold.selected{color:var(--amber);border-color:var(--amber)}.decision-tabs button.sell.selected{color:var(--red);border-color:var(--red)}.decision-panel{border:1px solid var(--line);background:var(--panel);border-radius:0 6px 6px}.table-tools{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:13px;display:flex}.search-input{max-width:235px}.input,.select{border:1px solid var(--line);width:100%;color:var(--ink);background:var(--bg);border-radius:4px;outline:none;padding:10px 11px;font-size:12px}.input:focus,.select:focus{border-color:var(--accent)}.sector-chips{flex-wrap:wrap;flex:1;gap:5px;display:flex}.chip{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:20px;padding:6px 8px;font-size:10px}.chip.selected{color:var(--accent-dark);border-color:var(--accent);background:var(--accent)}.export{white-space:nowrap;background:0 0;border:0;font:10px DM Mono,monospace}.decision-wrap{max-height:62vh}.decision-table{border-collapse:collapse;width:100%;min-width:1260px;font-size:11px}.decision-table th{z-index:1;color:var(--muted);background:var(--panel);text-align:left;white-space:nowrap;cursor:pointer;padding:11px 12px;font:9px DM Mono,monospace;position:sticky;top:0}.sort-mark{color:var(--accent);margin-left:4px}.decision-table td{border-top:1px solid var(--line);color:var(--ink);white-space:nowrap;padding:12px}.decision-table tbody tr{cursor:pointer}.decision-table tbody tr:hover td{background:var(--panel-2)}.ticker{color:var(--ink);font-weight:800;text-decoration:none}.new-badge{color:var(--accent-dark);background:var(--accent);border-radius:3px;margin-left:6px;padding:3px 4px;font:8px DM Mono,monospace}.score-wrap{align-items:center;gap:7px;min-width:86px;display:flex}.score-bar{width:52px;height:5px}.reason{text-overflow:ellipsis;max-width:270px;overflow:hidden;color:var(--muted)!important}.criteria-count{color:var(--accent);font:11px DM Mono,monospace}.criterion-breakdown{white-space:normal;min-width:190px;margin-top:6px}.criterion-breakdown summary{color:var(--accent);cursor:pointer;font:9px DM Mono,monospace}.criterion-list{border:1px solid var(--line);background:var(--bg);border-radius:4px;gap:5px;margin-top:7px;padding:8px;display:grid}.criterion-list div{grid-template-columns:1fr auto;gap:2px 7px;font-size:10px;display:grid}.criterion-list span{grid-column:1}.criterion-list strong{color:var(--ink);grid-area:1/2/span 2;font:10px DM Mono,monospace}.criterion-list small,.criterion-list em{color:var(--muted);grid-column:1/-1;font-size:9px;font-style:normal}.criterion-pass span{color:var(--cyan)}.criterion-fail span{color:var(--red)}.sparkline{width:92px;height:30px}.near-misses{border:1px solid var(--line);background:var(--panel);border-radius:6px;margin-top:16px}.near-misses summary{color:var(--muted);cursor:pointer;padding:13px 16px;font-size:12px}.near-misses summary span{color:var(--amber);margin-left:7px;font:10px DM Mono,monospace}.near-list{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid}.near-list a{border-right:1px solid var(--line);border-bottom:1px solid var(--line);gap:4px;padding:13px 16px;text-decoration:none;display:grid}.near-list span,.near-list em{color:var(--muted);font-size:11px;font-style:normal}.near-list em{color:var(--amber);font:10px DM Mono,monospace}.notice{border:1px solid color-mix(in srgb, var(--red) 40%, var(--line));color:var(--red);background:color-mix(in srgb, var(--red) 8%, var(--panel));border-radius:5px;padding:14px;font-size:12px}.notice .text-link{background:0 0;border:0;margin-left:10px}.loading{background:linear-gradient(90deg, var(--panel) 25%, var(--panel-2) 50%, var(--panel) 75%);background-size:200% 100%;border-radius:6px;height:100px;animation:1.4s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.secondary-page,.content{max-width:1500px;padding:38px 36px 60px}.page-heading{margin-bottom:30px}.page-heading h1{margin-top:9px;font-size:clamp(34px,4vw,52px)}.panel{border:1px solid var(--line);background:var(--panel);border-radius:6px;overflow:hidden}.panel+.panel,.section-gap{margin-top:14px}.panel-head{border-bottom:1px solid var(--line);color:var(--ink);justify-content:space-between;align-items:center;padding:15px 17px;font-size:12px;font-weight:800;display:flex}.panel-meta,.run-detail{color:var(--muted);font:10px DM Mono,monospace}.table-wrap{overflow:auto}.table{border-collapse:collapse;width:100%;font-size:12px}.table th{color:var(--muted);text-align:left;padding:11px 14px;font:9px DM Mono,monospace}.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.sortable-header:hover,.sortable-header.active{color:var(--ink)}.sortable-header .sort-mark{min-width:8px;display:inline-block}.table td{border-top:1px solid var(--line);padding:13px 14px}.chart{height:300px;padding:18px}.portfolio-toolbar{align-items:end;gap:18px;margin-bottom:14px;display:flex}.portfolio-toolbar>.field-label{width:min(360px,100%)}.create-portfolio{align-items:end;gap:8px;display:flex}.create-portfolio .field-label{width:210px}.add-holdings-panel{overflow:visible}.add-holdings-form{grid-template-columns:minmax(0,1fr) 150px auto;align-items:end;gap:12px;padding:17px;display:grid}.holdings-input{resize:vertical;min-height:76px}.quantity-field{min-width:0}.add-help{padding:0 17px 15px}.add-message{color:var(--cyan);padding:0 17px 16px;font:10px/1.5 DM Mono,monospace}.portfolio-stats{border:1px solid var(--line);background:var(--line);flex-wrap:wrap;gap:1px;margin-top:14px;display:flex}.portfolio-stats div{background:var(--panel);gap:4px;min-width:135px;padding:13px 16px;display:grid}.portfolio-stats span{color:var(--muted);font:9px DM Mono,monospace}.portfolio-stats strong{color:var(--ink);font-size:18px}.holdings-table{min-width:1420px}.holdings-table th{white-space:nowrap}.quantity-input{border:1px solid var(--line);width:84px;color:var(--ink);background:var(--bg);border-radius:4px;padding:7px 8px;font:11px DM Mono,monospace}.quantity-input:focus{border-color:var(--accent);outline:none}.status-ready{color:var(--cyan)}.status-pending{color:var(--amber)}.status-no-data{color:var(--red)}.remove-holding{background:0 0;border:0;font-size:10px}.strategy-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.strategy-card{border:1px solid var(--line);min-height:145px;color:var(--ink);background:var(--panel);text-align:left;border-radius:6px;gap:8px;padding:16px;display:grid}.strategy-card:hover,.strategy-card.selected{border-color:var(--accent);background:var(--panel-2)}.strategy-card strong{font-size:15px}.strategy-card p{color:var(--muted);margin:0;font-size:11px;line-height:1.5}.strategy-card small{color:var(--muted);font:9px DM Mono,monospace}.strategy-results .criterion-breakdown{max-width:500px}.drawer-backdrop{z-index:10;background:#00000080;position:fixed;inset:0}.drawer{border-left:1px solid var(--line);background:var(--panel);width:min(450px,100%);height:100%;padding:28px;position:absolute;top:0;right:0;overflow:auto;box-shadow:-20px 0 60px #00000040}.drawer-head{justify-content:space-between;margin-bottom:28px;display:flex}.drawer-head h2{margin-top:8px}.drawer-body{gap:17px;display:grid}.field-label{color:var(--muted);gap:7px;font:10px DM Mono,monospace;display:grid}.field-help{color:var(--muted);font-size:10px}.field-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.code-input{resize:vertical;min-height:160px;font:11px/1.5 DM Mono,monospace}.scope-list{color:var(--ink);gap:8px;font:11px Manrope,sans-serif;display:grid}.drawer-actions{gap:13px;padding-top:10px;display:grid}.theme-toggle{color:var(--muted);font-size:11px}.btn{border:1px solid var(--accent);color:var(--accent-dark);background:var(--accent);border-radius:4px;padding:10px 15px;font-size:11px;font-weight:800}.btn:hover{filter:brightness(1.08)}@media (width<=920px){.rail{flex-basis:64px;width:64px;padding:22px 7px}.brand{padding:0 8px 35px;font-size:20px}.brand span,.rail-label,.rail-foot{display:none}.nav a{text-align:center;padding:11px 8px;font-size:0;overflow:hidden}.nav a:first-letter{font-size:12px}.today-head{flex-direction:column;align-items:start}.today-meta{text-align:left;width:100%}}@media (width<=620px){.topbar{height:57px;padding:0 16px}.today-content,.secondary-page,.content{padding:25px 14px 45px}.today-head{margin-bottom:23px}h1{font-size:42px}.action-zone{padding:27px 8px 24px}.active-strategy{gap:6px;display:grid}.active-strategy strong{margin-left:0}.primary-action{width:100%}.table-tools{flex-direction:column;align-items:stretch}.search-input{max-width:none}.decision-wrap{max-height:none;overflow:visible}.decision-table,.decision-table tbody,.decision-table tr,.decision-table td{min-width:0;display:block}.decision-table{width:100%}.decision-table thead{display:none}.decision-table tr{border:1px solid var(--line);border-radius:5px;margin:10px;padding:12px}.decision-table td{white-space:normal;text-align:right;border:0;justify-content:space-between;gap:12px;padding:5px 0;display:flex}.decision-table td:before{color:var(--muted);text-align:left;font:9px DM Mono,monospace}.decision-table td:first-child:before{content:"TICKER"}.decision-table td:nth-child(2):before{content:"COMPANY"}.decision-table td:nth-child(3):before{content:"SECTOR"}.decision-table td:nth-child(4):before{content:"SCORE"}.decision-table td:nth-child(5):before{content:"ROCE"}.decision-table td:nth-child(6):before{content:"MIN 5Y"}.decision-table td:nth-child(7):before{content:"AVG 5Y"}.decision-table td:nth-child(8):before{content:"FCF YIELD"}.decision-table td:nth-child(9):before{content:"ND / EBITDA"}.decision-table td:nth-child(10):before{content:"REV GROWTH"}.decision-table td:nth-child(11):before{content:"HISTORY"}.decision-table td:nth-child(12):before{content:"REASON"}.decision-table td:nth-child(13):before{content:"EBIT MARGIN"}.decision-table td:nth-child(14):before{content:"HISTORY"}.decision-table td:nth-child(15):before{content:"REASON"}.decision-table td:nth-child(16):before{content:"CRITERIA"}.decision-table td:nth-child(17):before{content:"TREND"}.decision-table td:last-child{justify-content:end}.near-list,.field-grid{grid-template-columns:1fr}.drawer{padding:22px 17px}.portfolio-toolbar,.create-portfolio{flex-direction:column;align-items:stretch}.portfolio-toolbar>.field-label,.create-portfolio .field-label{width:100%}.add-holdings-form{grid-template-columns:1fr}.add-holdings-form .btn{width:100%}}
