*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:sans-serif;background:#1a1a1a;color:#e0e0e0;}
#login{display:none;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#1a1a1a,#2a2a2a);}
#boot{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;color:#888;font-size:.9rem;gap:18px;}
.spinner{width:44px;height:44px;border:3px solid #c9a84c33;border-top-color:#c9a84c;border-radius:50%;animation:spin 0.9s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.lbox{background:#222;border-radius:16px;padding:40px 36px;width:340px;box-shadow:0 8px 32px rgba(0,0,0,.5);border:1px solid #c9a84c33;}
.lbox h2{text-align:center;color:#c9a84c;margin-bottom:8px;}
.lbox p{text-align:center;color:#888;font-size:.85rem;margin-bottom:24px;}
.lbox input{width:100%;padding:12px;border:1.5px solid #444;border-radius:8px;font-size:.95rem;margin-bottom:10px;outline:none;background:#2a2a2a;color:#e0e0e0;}
.lbox input:focus{border-color:#c9a84c;}
.lbox button{width:100%;padding:13px;background:#c9a84c;color:#1a1a1a;border:none;border-radius:8px;font-size:1rem;cursor:pointer;font-weight:700;transition:all .2s;}.lbox button:hover{background:#e0c060;}.lbox button:active{transform:scale(.97);background:#b89a40;}.lbox button.loading{opacity:.6;pointer-events:none;}
#err{color:#e04040;font-size:.85rem;text-align:center;margin-top:8px;}
#app{display:none;}
.top-stack{position:sticky;top:0;z-index:20;background:#111;}
.hdr{background:#111;color:#c9a84c;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #c9a84c33;}
.hdr h1{font-size:1.3rem;color:#c9a84c;}.hdr p{font-size:.8rem;opacity:.7;margin-top:3px;color:#999;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";}
.lout{background:transparent;border:1.5px solid #c9a84c88;color:#c9a84c;padding:6px 16px;border-radius:6px;cursor:pointer;font-size:.85rem;}
.lout:hover{background:#c9a84c22;}
.nav{display:flex;background:#111;border-bottom:1px solid #333;padding:0 24px;}
.nav-tab{padding:12px 24px;font-size:.92rem;color:#888;cursor:pointer;border-bottom:3px solid transparent;font-weight:500;user-select:none;transition:all .2s;}
.nav-tab:hover{color:#c9a84c;}
.nav-tab.active{color:#c9a84c;border-bottom-color:#c9a84c;font-weight:700;}
.con{max-width:1100px;margin:0 auto;padding:24px 16px;}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:20px;}
.card{background:#222;border-radius:12px;padding:20px;box-shadow:0 2px 8px rgba(0,0,0,.3);border-left:4px solid #555;}
.card.pos{border-left-color:#4caf50;}.card.neg{border-left-color:#e04040;}
.lbl{font-size:.78rem;color:#999;margin-bottom:6px;}.val{font-size:1.55rem;font-weight:700;color:#c9a84c;font-family:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Courier New",monospace,sans-serif;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";}.sub{font-size:.78rem;color:#888;margin-top:6px;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";}
.pos{color:#4caf50;font-weight:600;}.neg{color:#e04040;font-weight:600;}
.box{background:#222;border-radius:12px;padding:24px;box-shadow:0 2px 8px rgba(0,0,0,.3);margin-bottom:20px;border:1px solid #333;}
.box h2{font-size:.95rem;color:#c9a84c;margin-bottom:16px;}
.ch{position:relative;height:280px;}
.ch-tall{height:440px;}
.tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;}
.tab{padding:5px 14px;border:1.5px solid #c9a84c;border-radius:20px;cursor:pointer;font-size:.82rem;color:#c9a84c;background:transparent;user-select:none;}
.tab.active{background:#c9a84c;color:#1a1a1a;}
table{width:100%;border-collapse:collapse;font-size:.85rem;min-width:600px;}
th{background:#2a2a2a;color:#c9a84c;padding:10px 12px;text-align:center;border-bottom:2px solid #444;white-space:nowrap;}
td{padding:10px 12px;border-bottom:1px solid #333;text-align:right;white-space:nowrap;color:#ddd;font-family:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Courier New",monospace,sans-serif;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";}
td:first-child{text-align:left;}tr:hover td{background:#2a2a2a;}
.total-row td{border-top:2px solid #c9a84c;background:#2a2a2a;font-weight:600;color:#c9a84c;}
.section-title{font-size:.88rem;color:#c9a84c;font-weight:600;margin-bottom:10px;padding-bottom:6px;border-bottom:1.5px solid #444;}
.toggle-title{cursor:pointer;user-select:none;}.toggle-title:hover{color:#e0c060;}
.filter-bar{display:flex;align-items:center;gap:16px;margin-bottom:16px;flex-wrap:wrap;}
.filter-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.filter-label{font-size:.82rem;color:#999;font-weight:600;}
.chk{display:flex;align-items:center;gap:4px;font-size:.82rem;color:#ccc;cursor:pointer;user-select:none;}
.chk input{accent-color:#c9a84c;cursor:pointer;}
.month-row:hover td{background:#2a2a2a;}
.sub-row td{background:#1e1e1e;font-size:.8rem;color:#999;}
.sub-left{padding-left:20px!important;font-weight:500;color:#bbb!important;}
.sub-right{font-weight:500;}
.sub-cell{color:#888!important;}
.fund-th{position:relative;white-space:normal;min-width:140px;line-height:1.3;vertical-align:middle;cursor:pointer;text-align:center;}
.fn-info{position:relative;}
.fn-info:hover{color:#c9a84c;}
.fn-bubble{display:none;position:fixed;background:#2a2a2a;border:1.5px solid #c9a84c;border-radius:10px;padding:10px 14px;box-shadow:0 4px 16px rgba(0,0,0,.4);z-index:100;white-space:normal;min-width:220px;max-width:320px;text-align:left;cursor:default;}
.fn-bubble::before{content:'';position:absolute;top:-7px;left:var(--arrow-left,50%);transform:translateX(-50%);border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #c9a84c;}
.fn-info.open .fn-bubble{display:block;}
.fn-bubble-text{font-size:.78rem;color:#ddd;line-height:1.5;font-weight:500;}
.fn-bubble-title{font-size:.72rem;color:#c9a84c;font-weight:600;margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid #c9a84c44;}
.div-cell{cursor:pointer;}
.div-cell:hover{color:#c9a84c!important;}
.div-cell.open{color:#c9a84c!important;}
.div-cell-date{font-size:.7rem;color:#888;margin-top:4px;line-height:1.3;font-weight:400;}
.div-edit-btn{background:transparent;border:1px solid #c9a84c88;color:#c9a84c;border-radius:4px;cursor:pointer;padding:1px 6px;margin-left:4px;font-size:.72rem;line-height:1.2;}
.div-edit-btn:hover{background:#c9a84c22;}
.div-edit-btn.save{border-color:#4caf5088;color:#4caf50;}
.div-edit-btn.save:hover{background:#4caf5022;}
.div-edit-btn.cancel{border-color:#e0404088;color:#e04040;}
.div-edit-btn.cancel:hover{background:#e0404022;}
.div-edit-btn.reset{border-color:#888;color:#bbb;}
.div-edit-btn.reset:hover{background:#ffffff22;}
.div-edit-input{background:#1e1e1e;border:1px solid #444;color:#e0e0e0;border-radius:4px;padding:2px 6px;font-size:.78rem;font-family:inherit;}
.div-edit-input::-webkit-calendar-picker-indicator{filter:invert(1) sepia(1) saturate(3) hue-rotate(5deg) brightness(0.95);cursor:pointer;opacity:0.75;margin-left:2px;}
.div-edit-input::-webkit-calendar-picker-indicator:hover{opacity:1;}
.div-edit-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap;}
.fn-copy{cursor:pointer;font-size:1rem;color:#c9a84c;}
.fn-copy:hover{color:#e0c060;}
.copy-btn{font-size:.65rem;padding:1px 6px;border:1px solid #c9a84c;border-radius:4px;background:transparent;color:#c9a84c;cursor:pointer;vertical-align:middle;margin-left:4px;}
.copy-btn:hover{background:#c9a84c;color:#1a1a1a;}
.toast{position:fixed;top:-50px;left:50%;transform:translateX(-50%);background:#c9a84c;color:#1a1a1a;padding:10px 24px;border-radius:8px;font-size:.9rem;z-index:9999;transition:top .3s ease;box-shadow:0 4px 12px rgba(0,0,0,.4);font-weight:600;}
.toast.show{top:24px;}
.freeze-table-wrap{overflow-x:auto;position:relative;}
.freeze-table{min-width:800px;}
.freeze-table .sticky-left{position:sticky;left:0;z-index:2;background:#222;border-right:2px solid #444;}
.freeze-table thead .sticky-left{background:#2a2a2a;}
.freeze-table .total-row .sticky-left{background:#2a2a2a;}
.freeze-table .sticky-right{position:sticky;right:0;z-index:2;background:#222;border-left:2px solid #444;}
.freeze-table thead .sticky-right{background:#2a2a2a;}
.freeze-table .total-row .sticky-right{background:#2a2a2a;}
@media(max-width:768px){.freeze-table .sticky-right{position:static;border:none;}}
.cfg-note{font-size:.82rem;color:#999;line-height:1.6;margin-bottom:20px;padding:12px 14px;background:#1e1e1e;border-left:3px solid #c9a84c;border-radius:4px;}
.cfg-form{display:flex;flex-direction:column;gap:24px;}
.cfg-sec{padding:18px;background:#1e1e1e;border:1px solid #333;border-radius:10px;}
.cfg-sec h3{font-size:.95rem;color:#c9a84c;margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid #333;}
.cfg-label{display:block;font-size:.78rem;color:#999;margin:10px 0 6px;font-weight:600;}
.cfg-input{width:100%;padding:10px 12px;border:1.5px solid #444;border-radius:6px;font-size:.9rem;background:#2a2a2a;color:#e0e0e0;outline:none;transition:border-color .2s;}
.cfg-input:focus{border-color:#c9a84c;}
.cfg-pw-wrap{position:relative;display:flex;gap:8px;align-items:stretch;}
.cfg-pw-wrap .cfg-input{flex:1;}
.cfg-eye{padding:0 14px;background:transparent;border:1.5px solid #c9a84c88;color:#c9a84c;border-radius:6px;cursor:pointer;font-size:.82rem;white-space:nowrap;}
.cfg-eye:hover{background:#c9a84c22;}
.cfg-actions{display:flex;align-items:center;gap:8px;margin-top:14px;}
.cfg-save{padding:7px 18px;background:#c9a84c;color:#1a1a1a;border:none;border-radius:6px;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .2s;}
.cfg-save:hover{background:#e0c060;}
.cfg-save:disabled{opacity:.6;cursor:not-allowed;}
.cfg-msg{font-size:.85rem;}
.cfg-msg.ok{color:#4caf50;}
.cfg-msg.err{color:#e04040;}
.cfg-sec-hdr{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:8px;margin-bottom:14px;border-bottom:1px solid #333;}
.cfg-sec-hdr h3{font-size:.95rem;color:#c9a84c;margin:0;padding:0;border:none;}
.cfg-sec-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.cfg-btn{padding:6px 14px;background:transparent;border:1.5px solid #c9a84c88;color:#c9a84c;border-radius:6px;cursor:pointer;font-size:.82rem;white-space:nowrap;transition:all .2s;}
.cfg-btn:hover{background:#c9a84c22;}
.cfg-btn-danger{border-color:#e0404088;color:#e04040;}
.cfg-btn-danger:hover{background:#e0404022;}
.cfg-cancel{padding:7px 16px;background:transparent;border:1.5px solid #666;color:#ccc;border-radius:6px;font-size:.85rem;cursor:pointer;}
.cfg-cancel:hover{background:#ffffff11;}
.cfg-add{padding:14px 20px;background:#1e1e1e;border:1.5px dashed #c9a84c88;color:#c9a84c;border-radius:10px;font-size:.92rem;cursor:pointer;transition:all .2s;text-align:center;}
.cfg-add:hover{background:#c9a84c15;border-style:solid;}
.cfg-view-row{display:flex;align-items:center;gap:12px;padding:8px 0;font-size:.88rem;}
.cfg-view-label{color:#999;min-width:96px;font-size:.78rem;font-weight:600;}
.cfg-view-val{color:#e0e0e0;font-family:monospace;}
.cfg-toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;}
.cfg-toggle input{display:none;}
.cfg-toggle-slider{position:relative;width:36px;height:20px;background:#444;border-radius:20px;transition:background .2s;}
.cfg-toggle-slider::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:#e0e0e0;border-radius:50%;transition:transform .2s;}
.cfg-toggle input:checked + .cfg-toggle-slider{background:#c9a84c;}
.cfg-toggle input:checked + .cfg-toggle-slider::after{transform:translateX(16px);}
.cfg-toggle-label{font-size:.82rem;color:#ccc;}
