:root{--bg:#0b1020;--panel:#121a2d;--panel2:#17213a;--text:#f4f7fb;--muted:#9aa8bf;--border:rgba(255,255,255,.08);--accent:#6ee7b7;--accent2:#34d399;--danger:#fb7185;--shadow:0 20px 50px rgba(0,0,0,.22)}*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:linear-gradient(180deg,#09101f 0%,#0b1020 100%);color:var(--text)}button,input,textarea,select{font:inherit}.app-shell{width:min(1180px,calc(100% - 28px));margin:0 auto;padding:28px 0 50px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(1.8rem,4vw,2.6rem)}h2{margin-bottom:0;font-size:1.25rem}.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:800;margin-bottom:5px}.top-actions{display:flex;gap:8px}.notice{background:rgba(110,231,183,.1);border:1px solid rgba(110,231,183,.25);color:#d7fff1;padding:12px 14px;border-radius:12px;margin-bottom:18px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}.metric-card,.panel{background:rgba(18,26,45,.93);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:18px}.metric-card{padding:18px}.metric-card span,.metric-card em{display:block;color:var(--muted);font-style:normal}.metric-card span{font-size:.88rem;margin-bottom:9px}.metric-card strong{display:block;font-size:clamp(1.6rem,4vw,2.2rem);letter-spacing:-.04em}.metric-card strong small{font-size:.85rem;color:var(--muted);letter-spacing:0}.metric-card em{font-size:.78rem;margin-top:8px}.panel{padding:20px;margin-bottom:14px}.grid-two{display:grid;grid-template-columns:.9fr 1.1fr;gap:28px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form.compact{margin-top:14px}.form label{display:grid;gap:7px;color:var(--muted);font-size:.84rem}.full{grid-column:1/-1}input,textarea,select{width:100%;border:1px solid var(--border);background:#0c1427;color:var(--text);border-radius:11px;padding:11px 12px;outline:none}input:focus,textarea:focus,select:focus{border-color:rgba(110,231,183,.6);box-shadow:0 0 0 3px rgba(110,231,183,.08)}textarea{resize:vertical}.button{appearance:none;border:0;border-radius:11px;padding:10px 14px;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}.button.primary{background:var(--accent);color:#062b20}.button.primary:hover{background:var(--accent2)}.button.secondary{background:var(--panel2);color:var(--text);border:1px solid var(--border)}.button.danger{background:rgba(251,113,133,.12);color:#fecdd3;border:1px solid rgba(251,113,133,.25)}.chart{min-height:285px;width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.chart svg{width:100%;height:285px;display:block}.chart text{fill:var(--muted);font-size:11px}.chart .grid{stroke:rgba(255,255,255,.08);stroke-width:1}.chart .line{fill:none;stroke:var(--accent);stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.chart .dot{fill:#0b1020;stroke:var(--accent);stroke-width:3}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:720px}th,td{padding:12px 10px;border-bottom:1px solid var(--border);text-align:left;font-size:.9rem}th{color:var(--muted);font-size:.77rem;text-transform:uppercase;letter-spacing:.06em}.reading-list{display:grid;gap:8px}.reading{background:#0c1427;border:1px solid var(--border);border-radius:12px;overflow:hidden}.reading summary{cursor:pointer;list-style:none;padding:13px 14px;display:flex;justify-content:space-between;gap:14px;align-items:center}.reading summary::-webkit-details-marker{display:none}.reading summary span{display:grid;gap:3px}.reading summary small{color:var(--muted);font-weight:400}.reading>form{margin-left:14px;margin-right:14px}.delete-form{margin-top:10px;margin-bottom:14px}.hint{color:var(--muted);font-size:.82rem;line-height:1.55;margin:14px 0 0}footer{color:var(--muted);text-align:center;font-size:.78rem;padding:14px 0 0}@media(max-width:850px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-two{grid-template-columns:1fr}}@media(max-width:560px){.app-shell{width:min(100% - 18px,1180px);padding-top:16px}.topbar{align-items:flex-end}.cards{grid-template-columns:1fr;gap:9px}.metric-card{padding:15px}.panel{padding:15px;border-radius:15px}.form{grid-template-columns:1fr}.full{grid-column:auto}.top-actions .button{padding:9px 11px;font-size:.82rem}.reading summary{align-items:flex-start}}


.login-shell {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 20px;
}
.login-card {
    width: min(430px, 100%);
    background: rgba(18,26,45,.95);
    border: 1px solid var(--border);
    box-shadow: var(--shadow);
    border-radius: 18px;
    padding: 24px;
}
.login-copy { color: var(--muted); margin-bottom: 18px; }
.login-form { grid-template-columns: 1fr; }
.notice.error { background: rgba(251,113,133,.1); border-color: rgba(251,113,133,.25); color: #fecdd3; }


.contract-status {
    position: relative;
    overflow: hidden;
}

.status-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 14px;
}

.status-row p {
    margin: 6px 0 0;
    color: var(--muted);
    line-height: 1.5;
}

.status-dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    box-shadow: 0 0 0 6px rgba(255,255,255,.04);
}

.status-numbers {
    text-align: right;
    display: grid;
    gap: 4px;
}

.status-numbers strong {
    font-size: 1.05rem;
}

.status-numbers span {
    color: var(--muted);
    font-size: .8rem;
}

.contract-status.good {
    border-color: rgba(52,211,153,.35);
    background: linear-gradient(135deg, rgba(52,211,153,.08), rgba(18,26,45,.93) 45%);
}
.contract-status.good .status-dot { background: #34d399; }

.contract-status.warn {
    border-color: rgba(250,204,21,.35);
    background: linear-gradient(135deg, rgba(250,204,21,.08), rgba(18,26,45,.93) 45%);
}
.contract-status.warn .status-dot { background: #facc15; }

.contract-status.bad {
    border-color: rgba(251,113,133,.35);
    background: linear-gradient(135deg, rgba(251,113,133,.08), rgba(18,26,45,.93) 45%);
}
.contract-status.bad .status-dot { background: #fb7185; }

.contract-status.neutral .status-dot { background: #94a3b8; }

@media (max-width: 650px) {
    .status-row {
        grid-template-columns: auto 1fr;
    }
    .status-numbers {
        grid-column: 2;
        text-align: left;
        margin-top: 4px;
    }
}
