*,:before,:after{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;padding:0;overflow:hidden}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:var(--mm-fs-base,14px);color:var(--mm-text-secondary,#e2e8f0);background:var(--mm-bg-root,#080b10);-webkit-font-smoothing:antialiased;line-height:1.4}*{scrollbar-width:thin;scrollbar-color:var(--mm-border,#1e2530) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--mm-border,#1e2530);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--mm-text-dim,#475569)}::-webkit-scrollbar-button{display:none}#root{flex-direction:column;display:flex}button,input,select{font:inherit}.app-shell{background:var(--mm-bg-root);width:100%;height:100%;display:flex;position:relative}.app-main{flex:1;min-width:0;height:100%;overflow:hidden}.section-pane{height:100%}.section-pane[hidden]{display:none}.side-menu{z-index:300;width:10px;position:fixed;top:0;bottom:0;left:0}.side-menu.open{width:176px}.side-panel{background:var(--mm-bg-elevated);border-right:1px solid var(--mm-border);opacity:0;flex-direction:column;justify-content:space-between;width:max-content;min-width:176px;padding:14px 8px;transition:transform .32s cubic-bezier(.4,0,1,1),opacity .2s,box-shadow .32s;display:flex;position:absolute;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:8px 0 32px #0000}.side-menu.open .side-panel{opacity:1;transition:transform .42s cubic-bezier(.16,1,.3,1),opacity .28s,box-shadow .42s;transform:translate(0);box-shadow:8px 0 32px #00000073}.side-items{flex-direction:column;gap:2px;display:flex}.side-bottom{border-top:1px solid var(--mm-border);padding-top:10px}.side-item{width:100%;color:var(--mm-text-muted);font:inherit;font-size:var(--mm-fs-md);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:9px 14px 9px 10px;transition:background .15s,color .15s;display:flex}.side-item svg{flex-shrink:0}.side-item:hover{background:var(--mm-hover);color:var(--mm-text-primary)}.side-item.on{background:color-mix(in srgb, var(--mm-accent) 16%, transparent);color:var(--mm-text-primary)}.side-item.on svg{color:var(--mm-accent)}.terminal{background:var(--mm-bg-root);flex-direction:column;width:100%;height:100%;display:flex}.topbar{background:var(--mm-bg-topbar);flex-shrink:0;align-items:center;gap:12px;height:48px;padding:0 12px;display:flex}.market-hours{white-space:nowrap;min-width:0;font-size:var(--mm-fs-sm);color:var(--mm-text-muted);align-items:center;gap:8px;margin-left:auto;display:flex;overflow:hidden}.mh-name{color:var(--mm-text-secondary);font-weight:600}.mh-status.open{color:var(--mm-up)}.mh-status.closed{color:var(--mm-text-dim)}.mh-session{border:1px solid var(--mm-border);border-radius:6px;padding:2px 8px}.mh-session.on{border-color:color-mix(in srgb, var(--mm-up) 60%, var(--mm-border));color:var(--mm-text-primary)}.mh-extra{border-style:dashed}.mh-tz{color:var(--mm-text-dim)}.topbar-left{flex-shrink:0;align-items:center;gap:8px;display:flex}.topbar-center{flex:1;min-width:0;max-width:480px;margin-left:12px}.mode-tabs{background:var(--mm-bg-root);border-radius:8px;gap:2px;padding:3px;display:flex}.mode-tabs button{color:var(--mm-text-muted);cursor:pointer;font-size:var(--mm-fs-md);background:0 0;border:none;border-radius:6px;padding:5px 14px;font-weight:500}.mode-tabs button.on{background:var(--mm-border);color:var(--mm-text-primary)}.stream-status{font-size:var(--mm-fs-xs);letter-spacing:.03em;white-space:nowrap;border-radius:6px;padding:4px 10px;font-weight:500}.stream-status.on{color:var(--mm-live);background:color-mix(in srgb, var(--mm-up) 12%, transparent)}.stream-status.off{color:var(--mm-down);background:color-mix(in srgb, var(--mm-down) 12%, transparent)}.stream-time{color:var(--mm-text-muted);font-weight:400}.ctrl{border:1px solid var(--mm-border);background:var(--mm-bg-main);color:var(--mm-text-secondary);cursor:pointer;font-size:var(--mm-fs-md);border-radius:6px;padding:6px 10px}.ctrl.icon{font-size:var(--mm-fs-lg);padding:4px 10px;line-height:1}.ctrl.star-on{color:var(--mm-star);border-color:color-mix(in srgb, var(--mm-star) 40%, var(--mm-border))}.workspace{flex:1;min-height:0;display:flex;overflow:hidden}.col-left{background:var(--mm-bg-panel);flex-shrink:0;width:240px;overflow-y:auto}.col-center{background:var(--mm-bg-main);flex-direction:column;flex:1;min-width:0;display:flex}.panel-resizer{z-index:5;cursor:col-resize;touch-action:none;background:0 0;flex:0 0 5px;margin:0 -2px;transition:background .15s}.panel-resizer:hover,.panel-resizer.active{background:color-mix(in srgb, var(--mm-accent) 55%, transparent)}.col-right{background:var(--mm-bg-panel);flex-direction:column;flex-shrink:0;gap:0;width:280px;display:flex;overflow-y:auto}.watchlist-panel{height:100%}.panel-head{justify-content:space-between;align-items:center;padding:12px 14px 8px;display:flex}.panel-title{font-size:var(--mm-fs-panel-title);text-transform:uppercase;letter-spacing:.06em;color:var(--mm-text-muted);font-weight:600}.panel-count{font-size:var(--mm-fs-panel-title);color:var(--mm-text-dim);background:var(--mm-border);border-radius:10px;padding:1px 7px}.empty-hint{font-size:var(--mm-fs-sm);color:var(--mm-text-dim);margin:0;padding:12px 14px;line-height:1.5}.stock-rows{flex-direction:column;display:flex}.stock-row{text-align:left;width:100%;color:inherit;cursor:pointer;background:0 0;border:none;padding:10px 14px;display:block}.stock-row:hover{background:var(--mm-hover)}.stock-row.active{background:color-mix(in srgb, var(--mm-accent) 12%, transparent)}.stock-row-top{align-items:center;gap:6px;display:flex}.stock-ticker{font-weight:500;font-size:var(--mm-fs-lg);color:var(--mm-text-primary)}.stock-exchange{font-size:var(--mm-fs-xs);color:var(--mm-text-dim);text-transform:uppercase}.stock-remove{color:var(--mm-text-dim);cursor:pointer;font-size:var(--mm-fs-lg);background:0 0;border:none;margin-left:auto;padding:0 4px;line-height:1}.stock-remove:hover{color:var(--mm-down)}.stock-row-bottom{justify-content:space-between;margin-top:4px;display:flex}.stock-price{font-size:var(--mm-fs-md);color:var(--mm-text-secondary);font-variant-numeric:tabular-nums}.stock-change{font-size:var(--mm-fs-sm);font-variant-numeric:tabular-nums;font-weight:500}.stock-change.up{color:var(--mm-up)}.stock-change.down{color:var(--mm-down)}.stock-loading{font-size:var(--mm-fs-xs);color:var(--mm-text-dim)}.chart-header{flex-shrink:0;justify-content:space-between;align-items:flex-end;padding:10px 16px 6px;display:flex}.chart-toolbar{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;min-height:36px;padding:4px 12px 8px;display:flex}.tb-group{background:color-mix(in srgb, var(--mm-bg-root) 70%, transparent);border:1px solid color-mix(in srgb, var(--mm-border) 70%, transparent);border-radius:7px;align-items:center;gap:2px;padding:2px;display:flex}.tb-btn{color:var(--mm-text-muted);cursor:pointer;font-size:var(--mm-fs-sm);white-space:nowrap;background:0 0;border:none;border-radius:5px;padding:5px 10px;font-weight:500;line-height:1.2;transition:background .12s,color .12s}.tb-btn:hover{color:var(--mm-text-primary);background:color-mix(in srgb, var(--mm-border) 60%, transparent)}.tb-btn.on{background:var(--mm-border);color:var(--mm-text-primary);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--mm-accent) 35%, transparent)}.tb-btn.icon{font-size:var(--mm-fs-lg);padding:4px 9px;line-height:1}.tb-btn.star-on{color:var(--mm-star)}.tb-sep{background:var(--mm-border);flex-shrink:0;width:1px;height:18px;margin:0 2px}.tb-spacer{flex:1;min-width:8px}.tb-dates{align-items:center;gap:6px;display:flex}.tb-dates-sep{color:var(--mm-text-dim);font-size:var(--mm-fs-sm)}.chart-symbol{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.chart-symbol h1{font-size:var(--mm-fs-ticker);color:var(--mm-text-primary);letter-spacing:-.02em;margin:0;font-weight:600}.chart-exchange{font-size:var(--mm-fs-sm);color:var(--mm-text-muted);font-weight:500}.chart-name{font-size:var(--mm-fs-sm);color:var(--mm-text-dim);text-overflow:ellipsis;white-space:nowrap;max-width:300px;overflow:hidden}.chart-quote{align-items:center;gap:12px;display:flex}.chart-price{font-size:var(--mm-fs-price);color:var(--mm-text-primary);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:500}.chart-change{font-size:var(--mm-fs-lg);font-variant-numeric:tabular-nums;font-weight:500}.chart-change.up{color:var(--mm-up)}.chart-change.down{color:var(--mm-down)}.live-tag{font-size:var(--mm-fs-xs);text-transform:uppercase;letter-spacing:.04em;border-radius:4px;padding:3px 8px;font-weight:600}.live-tag.live{background:color-mix(in srgb, var(--mm-up) 15%, transparent);color:var(--mm-live)}.live-tag.delay{background:color-mix(in srgb, var(--mm-delay) 12%, transparent);color:var(--mm-delay)}.chart-stack{flex-direction:column;flex:1;min-height:0;display:flex}.chart-wrap{min-height:0;position:relative}.chart-wrap-main{flex:1}.chart-legend{z-index:3;pointer-events:none;font-size:var(--mm-fs-xs);font-variant-numeric:tabular-nums;flex-direction:column;gap:1px;display:flex;position:absolute;left:8px}.chart-legend-row{white-space:nowrap;align-items:baseline;gap:6px;display:flex}.chart-legend-name{pointer-events:auto;color:var(--mm-text-muted);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;margin-left:-4px;padding:1px 4px}.chart-legend-name:hover{border-color:var(--mm-border);background:color-mix(in srgb, var(--mm-bg-elevated) 85%, transparent)}.chart-legend-row.mtf{opacity:.75}.chart-legend-value{text-shadow:0 0 3px var(--mm-bg-main)}.chart-wrap-osc{flex:0 0 140px;margin-top:2px}.chart-container{width:100%;height:100%}.chart-overlay{background:color-mix(in srgb, var(--mm-bg-root) 70%, transparent);color:var(--mm-text-muted);font-size:var(--mm-fs-lg);z-index:2;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.chart-empty{color:var(--mm-text-dim)}.banner-error{background:color-mix(in srgb, var(--mm-down) 12%, transparent);color:var(--mm-error);font-size:var(--mm-fs-md);border-radius:6px;flex-shrink:0;margin:0 16px 8px;padding:8px 12px}.symbol-search{width:100%;position:relative}.symbol-search input{border:1px solid var(--mm-border);background:var(--mm-bg-main) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23475569' viewBox='0 0 16 16'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85zm-5.242 1.156a5 5 0 1 1 0-10 5 5 0 0 1 0 10z'/%3E%3C/svg%3E") 10px center no-repeat;width:100%;color:var(--mm-text-secondary);font-size:var(--mm-fs-md);border-radius:8px;padding:7px 12px 7px 32px}.symbol-search input:focus{border-color:var(--mm-accent);outline:none}.search-hint{font-size:var(--mm-fs-xs);color:var(--mm-text-dim);position:absolute;top:50%;right:10px;transform:translateY(-50%)}.search-results{z-index:100;background:var(--mm-bg-elevated);border:1px solid var(--mm-border);border-radius:8px;max-height:320px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #00000080}.search-results li{cursor:pointer;font-size:var(--mm-fs-md);border-radius:6px;grid-template-columns:56px 48px 1fr auto;align-items:center;gap:8px;padding:8px 10px;display:grid}.search-results li:hover{background:var(--mm-border)}.search-results .name{color:var(--mm-text-muted);font-size:var(--mm-fs-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.badge{font-size:var(--mm-fs-xs);background:var(--mm-border);color:var(--mm-text-muted);border-radius:3px;padding:2px 6px}.search-results .search-manual{opacity:.9}.search-empty{z-index:100;background:var(--mm-bg-elevated);border:1px solid var(--mm-border);color:var(--mm-text-muted);font-size:var(--mm-fs-sm);border-radius:8px;padding:10px 12px;position:absolute;top:calc(100% + 4px);left:0;right:0}.col-right>div{padding:14px 16px}.change.up{color:var(--mm-up)}.change.down{color:var(--mm-down)}.indicator-panel h3{font-size:var(--mm-fs-panel-title);text-transform:uppercase;letter-spacing:.06em;color:var(--mm-text-muted);margin:0 0 10px;font-weight:600}.ind-quick{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.ind-quick-label{text-transform:uppercase;letter-spacing:.06em;color:var(--mm-text-dim);font-size:10px;font-weight:600}.ind-chips{flex-wrap:wrap;gap:4px;display:flex}.ind-chip{border:1px solid var(--mm-border);background:var(--mm-bg-main);color:var(--mm-text-muted);cursor:pointer;font-size:var(--mm-fs-xs);border-radius:5px;padding:4px 8px;font-weight:500}.ind-chip:hover{color:var(--mm-text-primary);border-color:color-mix(in srgb, var(--mm-accent) 50%, var(--mm-border))}.ind-chip:disabled{opacity:.35;cursor:default}.ind-mtf{margin-bottom:4px}.ind-chip.on{background:color-mix(in srgb, var(--mm-accent) 18%, transparent);border-color:var(--mm-accent);color:var(--mm-text-primary)}.indicator-add{align-items:center;gap:6px;margin-bottom:10px;display:flex}.ind-selected{min-width:0;font-size:var(--mm-fs-sm);color:var(--mm-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:500;overflow:hidden}.indicator-add input[type=number]{border:1px solid var(--mm-border);background:var(--mm-bg-main);width:64px;color:var(--mm-text-secondary);font-size:var(--mm-fs-sm);border-radius:6px;padding:5px 8px}.ind-add-btn{border:1px solid color-mix(in srgb, var(--mm-accent) 50%, var(--mm-border));background:color-mix(in srgb, var(--mm-accent) 22%, transparent);color:var(--mm-text-primary);cursor:pointer;font-size:var(--mm-fs-sm);border-radius:6px;padding:5px 12px;font-weight:500}.ind-add-btn:hover{background:color-mix(in srgb, var(--mm-accent) 35%, transparent)}.ind-empty{font-size:var(--mm-fs-sm);color:var(--mm-text-dim);margin:0;line-height:1.4}.ind-list{margin:0;padding:0;list-style:none}.ind-list li{font-size:var(--mm-fs-md);color:var(--mm-text-secondary);align-items:center;gap:6px;padding:6px 0;display:flex}.ind-list label{cursor:pointer;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.ind-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.ind-period{color:var(--mm-text-dim);font-size:var(--mm-fs-sm)}.ind-color{border:1px solid var(--mm-border);cursor:pointer;background:0 0;border-radius:4px;width:22px;height:22px;padding:0}.indicator-panel button.link{color:var(--mm-text-dim);cursor:pointer;font-size:var(--mm-fs-lg);background:0 0;border:none;padding:0 2px}.indicator-panel button.link:hover{color:var(--mm-down)}.ind-myset-btn{border:1px solid var(--mm-accent);width:100%;color:var(--mm-accent);font:inherit;font-size:var(--mm-fs-md);cursor:pointer;background:0 0;border-radius:8px;margin-bottom:10px;padding:7px 10px}.ind-myset-btn:hover{background:var(--mm-accent);color:#fff}.ind-set-tabs{border-bottom:1px solid var(--mm-border);gap:18px;margin:-4px 0 14px;display:flex}.ind-set-tabs button{color:var(--mm-text-secondary);font:inherit;font-size:var(--mm-fs-md);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:0 0 8px}.ind-set-tabs button.on{color:var(--mm-accent);border-bottom-color:var(--mm-text-primary)}.ind-set-body{flex-direction:column;gap:12px;display:flex}.modal.ind-set-modal{max-width:320px}.ind-set-row{font-size:var(--mm-fs-md);color:var(--mm-text-secondary);grid-template-columns:1fr 110px;align-items:center;gap:12px;display:grid}.ind-set-row input[type=number]{border:1px solid var(--mm-border);background:var(--mm-bg-main);width:100%;color:var(--mm-text-primary);font:inherit;font-size:var(--mm-fs-md);border-radius:8px;padding:8px 10px}.ind-set-row input[type=number]:focus{border-color:var(--mm-accent);outline:none}.ind-set-row .ind-color{width:44px;height:28px}.ind-set-check{font-size:var(--mm-fs-md);color:var(--mm-text-secondary);cursor:pointer;align-items:center;gap:8px;display:flex}.ind-set-actions{border-top:1px solid var(--mm-border);align-items:center;gap:8px;margin-top:18px;padding-top:14px;display:flex}.ind-set-spacer{flex:1}.muted{color:var(--mm-text-dim);font-size:var(--mm-fs-sm)}.login-screen{z-index:1000;background:var(--mm-bg-main);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.login-panel{background:var(--mm-bg-panel);border:1px solid var(--mm-border);border-radius:14px;flex-direction:column;gap:14px;width:min(360px,100%);padding:18px 20px 16px;display:flex}.login-screen .field span{font-size:var(--mm-fs-xs);letter-spacing:.03em;color:var(--mm-text-muted);font-weight:500}.login-screen input{border:1px solid var(--mm-border);background:var(--mm-bg-main);color:var(--mm-text-primary);font:inherit;font-size:var(--mm-fs-md);border-radius:8px;outline:none;padding:8px 10px}.login-screen input:focus{border-color:var(--mm-accent)}.login-submit{width:100%}.login-error{min-height:1.2em;color:var(--mm-down);font-size:var(--mm-fs-sm);margin:0}.fin-page,.settings-page{scrollbar-gutter:stable;background:var(--mm-bg-main);height:100%;overflow-y:auto}.fin-inner{max-width:1200px;margin:0 auto;padding:24px 32px 48px}.fin-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.fin-head h1,.settings-top h1{font-size:calc(var(--mm-fs-ticker) * 1.05);color:var(--mm-text-primary);letter-spacing:-.01em;margin:0;font-weight:600}.fin-head-actions{align-items:center;gap:8px;display:flex}.fin-error{background:color-mix(in srgb, var(--mm-error) 12%, transparent);color:var(--mm-error);font-size:var(--mm-fs-sm);border-radius:8px;margin:0 0 14px;padding:8px 12px}.fin-empty{color:var(--mm-text-muted);font-size:var(--mm-fs-sm);margin:0;padding:8px 0;line-height:1.5}.fin-empty p{margin:0 0 10px}.kpi-row{flex-wrap:wrap;row-gap:14px;margin-bottom:30px;display:flex}.kpi{border-left:1px solid var(--mm-border);flex-direction:column;flex:180px;gap:3px;min-width:0;padding:0 24px;display:flex}.kpi:first-child{border-left:none;padding-left:0}.kpi-label{font-size:var(--mm-fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--mm-text-muted);font-weight:600}.kpi-value{font-size:calc(var(--mm-fs-price) * .92);color:var(--mm-text-primary);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:400}.kpi-value.up{color:var(--mm-up)}.kpi-value.accent{color:var(--mm-accent)}.kpi-sub{font-size:var(--mm-fs-sm);color:var(--mm-text-dim);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fin-grid{grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);align-items:start;gap:48px;display:grid}.fin-col{flex-direction:column;gap:32px;min-width:0;display:flex}.fin-card{min-width:0}.fin-inner>.fin-card+.fin-card{margin-top:32px}.fin-card-head{border-bottom:1px solid var(--mm-border);justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;padding-bottom:8px;display:flex}.fin-card-head h2{font-size:var(--mm-fs-panel-title);text-transform:uppercase;letter-spacing:.06em;color:var(--mm-text-muted);margin:0;font-weight:600}.btn{border:1px solid var(--mm-border);background:var(--mm-bg-main);color:var(--mm-text-secondary);font:inherit;font-size:var(--mm-fs-md);cursor:pointer;white-space:nowrap;border-radius:8px;padding:8px 14px}.btn:hover:not(:disabled){border-color:color-mix(in srgb, var(--mm-accent) 60%, var(--mm-border));color:var(--mm-text-primary)}.btn:disabled{opacity:.45;cursor:default}.btn-primary{border-color:var(--mm-accent);background:var(--mm-accent);color:#fff;font-weight:500}.btn-primary:hover:not(:disabled){color:#fff;filter:brightness(1.1)}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--mm-hover);border-color:#0000}.btn.danger:hover:not(:disabled){color:var(--mm-down)}.icon-btn{width:28px;height:28px;color:var(--mm-text-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:0;font-size:16px;line-height:1}.icon-btn:hover{background:var(--mm-hover);color:var(--mm-text-primary)}.segmented{background:var(--mm-bg-root);border:1px solid var(--mm-border);border-radius:9px;gap:2px;padding:3px;display:inline-flex}.segmented button{color:var(--mm-text-muted);font:inherit;font-size:var(--mm-fs-sm);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:5px 12px}.segmented button.on{background:var(--mm-border);color:var(--mm-text-primary)}.chip{border:1px dashed var(--mm-border);color:var(--mm-text-secondary);font:inherit;font-size:var(--mm-fs-sm);cursor:pointer;background:0 0;border-radius:999px;padding:6px 12px}.chip:hover{border-style:solid;border-color:var(--mm-accent);color:var(--mm-text-primary)}.preset-chips{flex-wrap:wrap;gap:8px;display:flex}.preset-inline{border-top:1px solid var(--mm-border);margin-top:14px;padding-top:14px}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field-wide{grid-column:1/-1}.field>span{font-size:var(--mm-fs-xs);letter-spacing:.03em;color:var(--mm-text-muted);font-weight:500}.field input,.field select{border:1px solid var(--mm-border);background:var(--mm-bg-main);width:100%;color:var(--mm-text-primary);font:inherit;font-size:var(--mm-fs-md);border-radius:8px;padding:8px 10px}.field input:focus,.field select:focus{border-color:var(--mm-accent);outline:none}.form-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.form-preview{font-size:var(--mm-fs-sm);color:var(--mm-up);margin:12px 0 0}.modal-backdrop{z-index:400;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--mm-bg-elevated);border:1px solid var(--mm-border);border-radius:14px;width:100%;max-width:520px;padding:18px 20px 20px;overflow:visible;box-shadow:0 24px 64px #0009}.modal .fin-error{margin:12px 0 0}.modal-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.modal-head h2{font-size:var(--mm-fs-lg);color:var(--mm-text-primary);margin:0;font-weight:400}.pay-months{flex-direction:column;gap:18px;display:flex}.pay-month-head{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.pay-month-title{font-size:var(--mm-fs-lg);color:var(--mm-text-primary);font-weight:500}.pay-month-total{font-size:var(--mm-fs-lg);color:var(--mm-up);font-variant-numeric:tabular-nums;font-weight:500}.struct-bar,.dep-progress{background:var(--mm-border);border-radius:2px;height:4px;margin:6px 0 8px;overflow:hidden}.struct-bar span,.dep-progress span{background:color-mix(in srgb, var(--mm-up) 70%, transparent);border-radius:2px;height:100%;display:block}.pay-rows,.vac-list,.exp-rows,.struct-list,.month-pay{margin:0;padding:0;list-style:none}.pay-rows li{font-size:var(--mm-fs-md);color:var(--mm-text-secondary);grid-template-columns:56px 10px 1fr auto;align-items:center;gap:8px;padding:6px 0;display:grid}.pay-rows li.past,.vac-list li.past,.month-pay li.past{opacity:.45}.pay-date{color:var(--mm-text-muted);font-size:var(--mm-fs-sm);font-variant-numeric:tabular-nums}.pay-dot{background:var(--mm-text-dim);border-radius:50%;width:8px;height:8px}.pay-dot.kind-advance{background:var(--mm-pay-advance)}.pay-dot.kind-salary{background:var(--mm-pay-salary)}.pay-dot.kind-vacation_pay{background:var(--mm-pay-vacation)}.pay-dot.kind-interest{background:var(--mm-pay-interest)}.pay-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.pay-amount{color:var(--mm-text-primary);font-variant-numeric:tabular-nums;font-weight:500}.vac-list li{border-bottom:1px solid var(--mm-border);align-items:center;gap:10px;padding:8px 0;display:flex}.vac-main{flex-direction:column;flex:1;min-width:0;display:flex}.vac-period{color:var(--mm-text-primary);font-weight:500}.vac-meta{font-size:var(--mm-fs-sm);color:var(--mm-text-dim)}.vac-amount{color:var(--mm-delay);font-variant-numeric:tabular-nums;font-weight:500}.vac-add{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;align-items:center;gap:6px;margin-top:12px;display:grid}.vac-dash{color:var(--mm-text-dim)}.exp-groups{flex-direction:column;gap:18px;display:flex}.exp-group-head{align-items:center;gap:8px;margin-bottom:4px;display:flex}.cat-dot{border-radius:3px;flex-shrink:0;width:10px;height:10px}.exp-group-title{color:var(--mm-text-primary);font-weight:500}.exp-group-total{font-size:var(--mm-fs-sm);color:var(--mm-text-muted);font-variant-numeric:tabular-nums;margin-left:auto}.exp-rows li{border-radius:8px;align-items:center;gap:12px;padding:9px 4px 9px 18px;display:flex}.exp-rows li:hover{background:var(--mm-hover)}.exp-rows li.off .exp-main,.exp-rows li.off .exp-sum{opacity:.4}.exp-main{flex-direction:column;flex:1;min-width:0;display:flex}.exp-name{color:var(--mm-text-primary);font-size:var(--mm-fs-md)}.exp-meta{font-size:var(--mm-fs-sm);color:var(--mm-text-dim);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.exp-sum{flex-direction:column;align-items:flex-end;display:flex}.exp-amount{color:var(--mm-text-primary);font-variant-numeric:tabular-nums;font-weight:500}.exp-monthly{font-size:var(--mm-fs-xs);color:var(--mm-text-dim)}.row-actions{opacity:0;gap:2px;transition:opacity .12s;display:flex}.exp-rows li:hover .row-actions{opacity:1}.struct-list{flex-direction:column;gap:4px;display:flex}.struct-line{font-size:var(--mm-fs-sm);color:var(--mm-text-secondary);justify-content:space-between;display:flex}.month-pay li{font-size:var(--mm-fs-md);align-items:center;gap:10px;padding:6px 0;display:flex}.month-day{width:24px;color:var(--mm-text-muted);font-size:var(--mm-fs-sm);font-variant-numeric:tabular-nums;font-weight:500}.month-name{min-width:0;color:var(--mm-text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.month-amount{color:var(--mm-text-primary);font-variant-numeric:tabular-nums;font-weight:500}.dep-main{flex-direction:column;min-width:0;display:flex}.dep-bank{color:var(--mm-text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.dep-name{color:var(--mm-text-muted);font-weight:400}.dep-sub{font-size:var(--mm-fs-xs);color:var(--mm-text-dim);white-space:nowrap}.dep-num{color:var(--mm-text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.dep-num.strong{color:var(--mm-text-primary);font-weight:400}.dep-rate{color:var(--mm-up);white-space:nowrap;font-weight:600}.dep-progress span{background:var(--mm-accent)}.settings-inner{max-width:1100px;margin:0 auto;padding:18px 32px 24px}.settings-top{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.settings-colors{grid-template-columns:repeat(4,minmax(0,1fr));gap:0 28px;display:grid}.settings-group{margin-bottom:14px}.settings-group h2{font-size:var(--mm-fs-panel-title);text-transform:uppercase;letter-spacing:.06em;color:var(--mm-text-muted);margin:0 0 4px;font-weight:600}.color-row{cursor:pointer;grid-template-columns:18px minmax(0,1fr) 64px;align-items:center;gap:8px;padding:3px 0;display:grid}.swatch{width:18px;height:18px;box-shadow:inset 0 0 0 1px var(--mm-border);border-radius:5px;position:relative;overflow:hidden}.swatch input[type=color]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.color-label{font-size:var(--mm-fs-sm);color:var(--mm-text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.color-hex{width:100%;color:var(--mm-text-dim);font-family:ui-monospace,monospace;font-size:var(--mm-fs-xs);text-align:right;background:0 0;border:none;padding:0}.color-hex:focus{color:var(--mm-text-primary);outline:none}.size-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px;display:grid}.size-row{grid-template-columns:minmax(0,1.2fr) minmax(60px,1fr) 40px;align-items:center;gap:10px;padding:5px 0;display:grid}.size-label{font-size:var(--mm-fs-sm);color:var(--mm-text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.size-value{color:var(--mm-text-muted);font-size:var(--mm-fs-xs);font-variant-numeric:tabular-nums;justify-self:end}.size-row input[type=range]{appearance:none;background:linear-gradient(to right, var(--mm-accent) var(--pct,50%), var(--mm-border) var(--pct,50%));cursor:pointer;border-radius:2px;width:100%;height:3px}.size-row input[type=range]::-webkit-slider-thumb{appearance:none;background:#fff;border-radius:50%;width:12px;height:12px}.size-row input[type=range]::-moz-range-thumb{background:#fff;border:none;border-radius:50%;width:12px;height:12px}@media (width<=900px){.fin-grid{grid-template-columns:1fr}.fin-inner,.settings-inner{padding:18px 16px 32px}.settings-colors,.size-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.select{position:relative}.select-btn{border:1px solid var(--mm-border);background:var(--mm-bg-main);width:100%;color:var(--mm-text-primary);font:inherit;font-size:var(--mm-fs-md);text-align:left;cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.select-btn svg{color:var(--mm-text-muted);flex-shrink:0;transition:transform .15s}.select.open .select-btn{border-color:var(--mm-text-dim)}.select.open .select-btn svg{transform:rotate(180deg)}.select-list{overscroll-behavior:contain;z-index:10;background:var(--mm-bg-elevated);border:1px solid var(--mm-border);border-radius:10px;max-height:232px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 12px 32px #00000073}.select-list li{color:var(--mm-text-secondary);font-size:var(--mm-fs-md);cursor:pointer;border-radius:6px;padding:7px 10px}.select-list li:hover{background:var(--mm-hover);color:var(--mm-text-primary)}.select-list li.on{background:var(--mm-border);color:var(--mm-text-primary)}.datepicker{position:relative}.datepicker-btn{border:1px solid var(--mm-border);background:var(--mm-bg-main);width:100%;color:var(--mm-text-primary);font:inherit;font-size:var(--mm-fs-md);font-variant-numeric:tabular-nums;cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.datepicker-btn.empty span{color:var(--mm-text-dim)}.datepicker-btn svg{color:var(--mm-text-muted);flex-shrink:0}.datepicker.open .datepicker-btn{border-color:var(--mm-text-dim)}.datepicker-pop{z-index:20;background:var(--mm-bg-elevated);border:1px solid var(--mm-border);border-radius:12px;width:252px;padding:10px;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 12px 32px #00000073}.dp-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.dp-title{font-size:var(--mm-fs-md);color:var(--mm-text-primary)}.dp-nav,.dp-link{color:var(--mm-text-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px}.dp-nav{width:28px;height:28px;font-size:18px;line-height:1}.dp-nav:hover,.dp-link:hover{background:var(--mm-hover);color:var(--mm-text-primary)}.dp-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.dp-wd{text-align:center;font-size:var(--mm-fs-xs);color:var(--mm-text-dim);padding:4px 0}.dp-day{height:30px;color:var(--mm-text-secondary);font:inherit;font-size:var(--mm-fs-sm);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:none;border-radius:7px;padding:0}.dp-day:hover:not(:disabled){background:var(--mm-hover);color:var(--mm-text-primary)}.dp-day.today{box-shadow:inset 0 0 0 1px var(--mm-text-dim)}.dp-day.on{background:var(--mm-border);color:var(--mm-text-primary)}.dp-day:disabled{color:var(--mm-text-dim);opacity:.4;cursor:default}.dp-foot{justify-content:flex-end;margin-top:6px;display:flex}.dp-link,.tb-dates .datepicker-btn{font-size:var(--mm-fs-sm);padding:4px 8px}.settings-actions{align-items:center;gap:8px;display:flex}.bonus-add{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;align-items:center;gap:6px;margin-top:12px;display:grid}.bonus-add input{border:1px solid var(--mm-border);background:var(--mm-bg-main);width:100%;color:var(--mm-text-primary);font:inherit;font-size:var(--mm-fs-md);border-radius:8px;padding:8px 10px}.bonus-add input:focus{border-color:var(--mm-text-dim);outline:none}.vac-amount.bonus{color:var(--mm-pay-bonus)}.pay-dot.kind-bonus{background:var(--mm-pay-bonus)}.ecal-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.ecal-title{text-align:center;font-size:var(--mm-fs-md);color:var(--mm-text-primary);flex:1}.ecal-weekdays,.ecal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid}.ecal-wd{text-align:center;font-size:var(--mm-fs-xs);color:var(--mm-text-dim);padding-bottom:4px}.ecal-day{min-width:0;color:var(--mm-text-secondary);font:inherit;background:0 0;border:none;border-radius:8px;flex-direction:column;align-items:center;gap:3px;padding:5px 0 4px;display:flex}.ecal-sum{font:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;margin:0 -4px;padding:0 4px}.ecal-sum:hover{text-decoration:underline}.ecal-day.today{box-shadow:inset 0 0 0 1px var(--mm-text-dim)}.ecal-day.past .ecal-num{color:var(--mm-text-dim)}.ecal-num{font-size:var(--mm-fs-sm);font-variant-numeric:tabular-nums}.ecal-dots{gap:3px;height:6px;display:flex}.ecal-dots i,.ecal-legend i,.ecal-day-list i{border-radius:50%;flex-shrink:0;width:6px;height:6px}.ecal.large .ecal-grid{border-top:1px solid var(--mm-border);border-left:1px solid var(--mm-border);gap:0}.ecal.large .ecal-day,.ecal.large .ecal-blank{border-right:1px solid var(--mm-border);border-bottom:1px solid var(--mm-border);min-height:84px}.ecal.large .ecal-day{border-top:none;border-left:none;border-radius:0;align-items:flex-start;gap:4px;padding:6px 8px}.ecal.large .ecal-day.today{box-shadow:none}.ecal.large .ecal-day.today .ecal-num{background:var(--mm-text-primary);color:var(--mm-bg-main);border-radius:999px;padding:0 6px}.ecal.large .ecal-num{font-size:var(--mm-fs-md)}.ecal-sums{font-size:var(--mm-fs-sm);font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-start;line-height:1.35;display:flex}.ecal-more{color:var(--mm-text-dim);font-size:var(--mm-fs-xs)}.ecal-legend{font-size:var(--mm-fs-xs);color:var(--mm-text-muted);flex-wrap:wrap;gap:14px;margin-top:10px;display:flex}.ecal-legend span{align-items:center;gap:6px;display:inline-flex}.dep-list{margin:0;padding:0;list-style:none}.dep-list li{border-bottom:1px solid var(--mm-border);align-items:center;gap:14px;padding:10px 4px;display:flex}.dep-list li:last-child{border-bottom:none}.dep-list li.closed{opacity:.5}.dep-list li:hover .row-actions{opacity:1}.dep-list .dep-main{flex:1}.dep-list .dep-rate{margin-left:8px;font-weight:500}.dep-list .dep-progress{max-width:220px;height:3px;margin:6px 0 0}.dep-nums{flex-direction:column;align-items:flex-end;display:flex}.month-bars{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:6px;display:grid}.month-bar{flex-direction:column;align-items:center;gap:3px;min-width:0;display:flex}.month-bar-col{align-items:flex-end;width:100%;max-width:26px;height:56px;display:flex}.month-bar-col span{background:color-mix(in srgb, var(--mm-pay-interest) 75%, transparent);border-radius:3px 3px 0 0;width:100%}.month-bar-val{color:var(--mm-text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:10px}.month-bar-label{font-size:var(--mm-fs-xs);color:var(--mm-text-dim)}.term-row{align-items:center;gap:10px;display:flex}.term-months{color:var(--mm-text-muted);font-size:var(--mm-fs-sm);align-items:center;gap:6px;display:flex}.term-months input{width:70px}.month-amount.in{color:var(--mm-up)}.month-amount.out{color:var(--mm-down)}.kpi-split{gap:6px}.kpi-split>div{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.kpi-split>div+div{border-top:1px solid var(--mm-border);padding-top:6px}.kpi-value.small{font-size:calc(var(--mm-fs-price) * .7)}.fin-inner.income-wide{position:relative}.income-side{flex-direction:column;gap:6px;width:230px;display:flex}@media (width>=1780px){.income-side{position:absolute;top:76px;left:calc(100% + 8px)}}@media (width<=1779px){.income-layout{grid-template-columns:minmax(0,1fr) 230px;align-items:start;gap:32px;display:grid}.income-side{padding-top:52px}}.side-block{margin-top:20px}.side-block h2{border-bottom:1px solid var(--mm-border);font-size:var(--mm-fs-panel-title);text-transform:uppercase;letter-spacing:.06em;color:var(--mm-text-muted);margin:0 0 8px;padding-bottom:8px;font-weight:600}.side-block .vac-main .vac-amount{font-size:var(--mm-fs-sm);margin-top:2px}.side-vac-add{flex-direction:column;gap:6px;margin-top:10px;display:flex}@media (width<=1100px){.income-layout{grid-template-columns:1fr}.income-side{width:auto;padding-top:0}}.modal-list{max-height:280px;margin-bottom:4px;overflow-y:auto}.past-month .pay-month-head{cursor:pointer;-webkit-user-select:none;user-select:none}.past-month .pay-month-title,.past-month .pay-month-total{color:var(--mm-text-muted)}.pay-month-head{align-items:center}.pay-toggle{width:18px;color:var(--mm-text-dim);text-align:center;margin-left:8px;font-size:18px;line-height:1;transition:transform .15s}.pay-toggle.open{transform:rotate(90deg)}.pay-month-head .pay-month-total{margin-left:auto}.amount-row{grid-template-columns:minmax(0,1fr) 92px;gap:6px;display:grid}
