:root{--ink:#172033;--muted:#7f899c;--line:#e8ecf3;--purple:#6559e8;--bg:#f5f7fb}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,"Malgun Gothic",sans-serif}
.sidebar{position:fixed;inset:0 auto 0 0;width:225px;background:#fff;border-right:1px solid var(--line);padding:25px 18px;display:flex;flex-direction:column}
.brand{display:flex;align-items:center;gap:11px;padding:0 7px 30px}
.logo{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,#756af0,#5044cb);color:#fff;font-weight:800;font-size:20px}
.brand b,.brand small{display:block}
.brand small{color:#9aa2b0;font-size:10px;margin-top:3px}
.sidebar nav{display:grid;gap:6px}
.sidebar a{padding:11px 13px;border-radius:9px;color:#7c8598;text-decoration:none;font-size:14px}
.sidebar a span{margin-left:10px}
.sidebar a.active{background:#f0edff;color:#5c50dc;font-weight:700}
.side-foot{margin-top:auto;display:grid;border-top:1px solid var(--line);padding-top:10px}
.main{margin-left:225px;padding:30px 36px 50px;max-width:1600px}
.main>header{display:flex;justify-content:space-between;align-items:center}
.main header p{margin:0;color:#939baa;font-size:11px}
.main h1{margin:5px 0;font-size:27px}
.button,.primary{display:inline-block;border:0;border-radius:8px;padding:10px 14px;background:var(--purple);color:#fff;text-decoration:none;font-weight:700;cursor:pointer}
.button.light{background:#fff;color:#596275;border:1px solid var(--line)}
.notice{background:#eaf8f1;color:#267e5e;border-radius:8px;padding:11px 14px;margin-top:16px}
.account-tabs{display:flex;gap:5px;margin:24px 0 16px;overflow:auto}
.account-tabs a{white-space:nowrap;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 13px;color:#7a8394;text-decoration:none;font-size:12px}
.account-tabs a.active{background:var(--purple);color:#fff}
.price-sync{display:flex;justify-content:space-between;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 14px;margin-bottom:14px}
.price-sync b,.price-sync small{display:block}.price-sync small{color:#8b94a5;font-size:10px;margin-top:3px}.price-sync form{margin:0}.price-sync .button{padding:8px 11px;font-size:11px}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.cards.dashboard-cards{grid-template-columns:repeat(5,minmax(0,1fr))}
.cards article,.panel{background:#fff;border:1px solid var(--line);border-radius:13px;padding:20px}
.cards span{font-size:11px;color:#7f899b}
.cards strong{display:block;font-size:21px;margin:12px 0 6px}
.cards small,.panel p,td small{display:block;color:#949cab;font-size:10px}
.gain{color:#e04e5b!important}
.loss{color:#3478cb!important}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.panel h2{font-size:16px;margin:0 0 13px}
.account-row{display:grid;grid-template-columns:36px 1fr auto;align-items:center;border-top:1px solid var(--line);padding:13px 0}
.account-row>span{width:30px;height:30px;border-radius:8px;background:#eeebff;color:#5e52d5;display:grid;place-items:center}
.account-row b,.account-row small{display:block}
.profit-box{display:flex;justify-content:space-between;padding:18px 0;border-top:1px solid var(--line)}
.table-panel{padding:0;margin-top:14px;overflow:hidden}
.table-panel h2{padding:18px 20px 5px}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;min-width:760px}
th{background:#fafbfc;color:#8e97a8;text-align:left;font-size:10px;padding:10px 14px}
td{border-top:1px solid #eff1f5;padding:11px 14px;font-size:11px}
.badge{padding:4px 7px;border-radius:5px;font-weight:700}
.badge.buy{background:#ffeaec;color:#d64b59}
.badge.sell{background:#e8f1ff;color:#3974c4}
.badge.flow{background:#e8f8f1;color:#278a66}
.inline{display:flex;gap:4px;margin:0}
.inline input{width:85px;border:1px solid #dce1e9;border-radius:5px;padding:5px}
.inline button{border:0;border-radius:5px;background:#efedff;color:#5c50d6;cursor:pointer}
.delete{background:#f0f1f4!important;color:#8992a2!important}
.empty{text-align:center;color:#959dac;padding:30px}
.form-panel{margin-top:15px}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.form-grid label,.journal-grid label{display:grid;gap:6px;font-size:11px;font-weight:700;color:#616a7b}
.form-grid input,.form-grid select,.journal-grid input,.journal-grid select,.method-form input,.method-form select,.stock-select select,.period input{border:1px solid #dce1e9;border-radius:7px;padding:9px;background:#fff}
.form-grid .wide{grid-column:1/-1}
.period{margin-bottom:14px}
.period form{display:flex;align-items:end;gap:13px}
.period form>div{margin-right:auto}
.period b,.period small{display:block}
.period label{display:grid;gap:5px;font-size:10px}
.stock-select{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.stock-select select{min-width:320px}
.journal-grid{display:grid;grid-template-columns:1.7fr .75fr;gap:14px}
.journal-head{display:flex;justify-content:space-between}
.journal-grid textarea{min-height:80px;border:1px solid #dce1e9;border-radius:8px;padding:10px;resize:vertical;font:inherit}
.journal-grid form>label{margin-top:13px}
.journal-save{display:flex;justify-content:flex-end;align-items:end;gap:10px;margin-top:15px}
.journal-list a{display:block;border-top:1px solid var(--line);padding:12px 7px;text-decoration:none;color:#556073}
.journal-list a.active{background:#f0edff;color:#5c50d6}
.journal-list b,.journal-list small{display:block}
.journal-list small{color:#e4a037}
.settings{display:grid;grid-template-columns:1.2fr 1fr;gap:14px}
.setting-list{margin-top:15px}
.setting-list>div{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:12px 0}
.setting-list b,.setting-list small{display:block}
.setting-list em{font-style:normal;background:#f0edff;color:#5c50d6;border-radius:5px;padding:4px 7px;height:max-content}
.method-form{display:grid;grid-template-columns:1fr 90px auto;gap:7px}
.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}
.method-chip{display:flex;align-items:center;gap:5px;background:#f2f3f6;padding:6px 7px 6px 9px;border-radius:7px;font-size:11px}
.method-chip form{margin:0}.method-delete{display:grid;place-items:center;width:20px;height:20px;padding:0;border:0;border-radius:5px;background:#fff;color:#8c94a3;cursor:pointer}.method-delete:hover{background:#ffe9eb;color:#c94350}.empty-methods{color:#949cab;padding:7px 0}
.chips small{margin-left:5px;color:#969ead}
.install{min-height:100vh;display:grid;place-items:center;padding:20px}
.install-card{width:min(520px,100%);background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px;box-shadow:0 20px 60px #17203318}
.install-card>.logo{margin:auto}
.install-card h1{text-align:center}
.install-card>p{text-align:center;color:#7f8797}
.install-card form{display:grid;gap:13px}
.install-card label{display:grid;gap:6px;font-size:12px;font-weight:700}
.install-card input{padding:10px;border:1px solid #dce1e9;border-radius:7px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.success,.error{padding:11px;border-radius:7px;margin:13px 0}
.success{background:#eaf8f1;color:#277d5e}
.error{background:#ffeded;color:#a83d48}
.link{text-align:center;width:100%}
@media(max-width:1000px){.cards,.cards.dashboard-cards{grid-template-columns:1fr 1fr}
.grid2,.settings,.journal-grid{grid-template-columns:1fr}
.stock-select{align-items:flex-start;flex-direction:column;gap:10px}
.stock-select select{width:100%;min-width:0}
}
@media(max-width:700px){.sidebar{width:62px;padding:20px 9px}
.brand>div,.sidebar a span{display:none}
.main{margin-left:62px;padding:20px 13px}
.main>header{align-items:flex-start;gap:10px}
.main header .button.light{display:none}
.cards,.cards.dashboard-cards{grid-template-columns:1fr}
.price-sync{align-items:flex-start;flex-direction:column}
.form-grid{grid-template-columns:1fr}
.form-grid .wide{grid-column:auto}
.period form{flex-wrap:wrap}
.period form>div{width:100%}
.two{grid-template-columns:1fr}
}

.closing-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:14px;margin-top:14px}.closing-grid .table-panel{margin-top:0}.closing-grid .table-panel>p{padding:0 20px}.close-history details{border-top:1px solid var(--line);padding:11px 0}.close-history summary{cursor:pointer;display:flex;justify-content:space-between}.close-history details>div,.row-actions{display:flex;align-items:center;gap:6px;margin-top:8px}.snapshot-editor{margin-top:14px}.snapshot-editor textarea{width:100%;min-height:80px;border:1px solid #dce1e9;border-radius:8px;padding:10px}.snapshot-row{display:grid;grid-template-columns:1fr 180px 180px;gap:10px;align-items:end;border-top:1px solid var(--line);padding:10px 0}.snapshot-row label{display:grid;gap:4px;font-size:10px}.snapshot-row input{border:1px solid #dce1e9;border-radius:7px;padding:8px}.mini{font-size:10px;padding:6px 8px}.standalone{padding:28px}.standalone .panel{max-width:1200px;margin:auto}.upload-head{display:flex;justify-content:space-between;align-items:start}.upload-head h1{margin:0}.upload-actions{display:flex;gap:8px;align-items:center;margin:20px 0}.upload-actions input{border:1px solid var(--line);padding:9px;border-radius:7px;background:#fff}.ok{color:#278a66}.back{display:block;text-align:center;margin-top:8px}
.form-actions{display:flex;align-items:center;gap:8px;grid-column:1/-1}.form-actions .button{font-size:12px}
.monthly-panel{padding-bottom:8px}.monthly-profit{border-top:1px solid var(--line)}.monthly-profit summary{display:grid;grid-template-columns:180px 180px 100px;align-items:center;gap:16px;padding:15px 20px;cursor:pointer;list-style:none}.monthly-profit summary::-webkit-details-marker{display:none}.monthly-profit summary b,.monthly-profit summary small{display:block}.monthly-profit summary small{margin-top:4px;color:#949cab;font-size:10px}.monthly-profit summary strong{font-size:15px}.monthly-profit summary em{color:#7d86a0;font-size:10px;font-style:normal}.monthly-profit[open] summary{background:#fafbff}.monthly-profit[open] summary em{color:var(--purple);font-weight:700}.monthly-profit .table-wrap{padding:0 20px 14px}.profit-table{width:min(560px,100%);min-width:0}.profit-table th,.profit-table td{padding:10px 12px}.profit-table th:first-child,.profit-table td:first-child{width:150px}
@media(max-width:1000px){.closing-grid{grid-template-columns:1fr}.snapshot-row{grid-template-columns:1fr}.upload-head{display:block}.upload-head .button{margin-top:8px}.upload-actions{align-items:stretch;flex-direction:column}}
@media(max-width:700px){.monthly-profit summary{grid-template-columns:1fr auto;padding:14px}.monthly-profit summary em{display:none}.monthly-profit .table-wrap{padding:0 14px 12px}.profit-table th:first-child,.profit-table td:first-child{width:52%}.performance-cards strong{font-size:20px}}
