:root{--bg:#f0f2f5;--bg-soft:#e5e7eb;--border:#ddd;--border-soft:#e5e7eb;--border-strong:#cbd5e1;--danger:#e24a4a;--primary:#4a90e2;--primary-soft:#e0edfb;--row-hover:#f1f5ff;--surface:#ffffff;--surface-alt:#f8fafc;--table-header:#f8f9fa;--text:#333333;--text-muted:#6b7280;--year-break:#e9ecef}
*{box-sizing:border-box}
a{color:inherit;text-decoration:none}
body{background:var(--bg);color:var(--text);font-family:system-ui, -apple-system, sans-serif;margin:0;overflow-x:auto}
body.app{display:grid;gap:20px;grid-template-columns:minmax(0, 3fr) minmax(260px, 1fr);margin:0 auto;max-width:1200px}
body.dark{--bg:#020617;--bg-soft:#0a1124;--border:#1e293b;--border-soft:#162036;--border-strong:#475569;--primary:#60a5fa;--primary-soft:#1e3a8a33;--row-hover:#0b1b35;--surface:#3d4048;--surface-alt:#152033;--table-header:#0d1728;--text:#f1f5f9;--text-muted:#94a3b8;--year-break:#0d1525}
dialog{background:var(--surface);border:none;border-radius:8px;box-shadow:0 10px 25px #0003;max-width:800px;padding:20px;width:90%}
dialog.form{padding:0}
dialog.form .columns{column-count:2;column-gap:20px;padding:10px}
dialog.form .columns > div{break-inside:avoid}
dialog.form .columns input,dialog.form .columns select,dialog.form > form > header input{float:right;font-family:inherit;margin-top:5px;width:150px}
dialog.form > header{align-items:center;border-bottom:1px solid var(--border-strong);display:flex;font-weight:600;gap:12px;justify-content:space-between}
dialog.form form{line-height:2em}
dialog.form header{background:var(--primary-soft);padding:6px}
dialog.form input,dialog.form select{border-radius:2px;font-size:.9rem;margin:0;padding:3px 5px;width:auto}
dialog::backdrop{background:#0008}
input{border:1px solid var(--border-strong);border-radius:4px;margin:10px 0;padding:12px;width:100%}
#phloDialog{max-width:300px;width:60%}
#sidebarToggle{align-items:center;border-radius:999px;display:none;font-size:1.3rem;max-width:320px;padding:6px 10px;position:fixed;right:12px;top:12px;width:auto;z-index:3}
.actions{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.box{background:#fffffffa;border-radius:10px;box-shadow:0 10px 25px #0000004d;max-width:400px;padding:40px;text-align:center;width:100%}
.btn{background:var(--primary);border:0;border-radius:4px;color:white;cursor:pointer;display:inline-block;font-size:16px;padding:10px 20px;text-align:center;width:100%}
.btn.cancel{background:var(--border-soft);color:var(--text)}
.btn.delete{background:var(--danger)}
.center{text-align:center}
.edit-grid{display:grid;gap:10px;grid-template-columns:1fr 1fr}
.edit-grid .full{grid-column:span 2}
.edit-grid input{border:1px solid var(--border-soft);border-radius:4px;display:block;margin-top:4px;padding:8px;width:100%}
.edit-grid label{display:block;font-size:12px;font-weight:bold}
.error{color:red;margin-bottom:10px}
.filters{display:flex;flex-direction:column;gap:8px;margin:10px 0 0}
.filters label{display:flex;flex-direction:column;font-size:.85rem;gap:3px}
.filters select{border:1px solid var(--border-soft);border-radius:4px;font-size:.9rem;margin:0;padding:5px 6px;width:100%}
.footer{display:flex;gap:10px;justify-content:flex-end;margin-top:20px;padding:9px}
.hide{display:none}
.input-row{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:5px}
.input-row .short{flex:0 0 70px}
.input-row input{border:1px solid var(--border-soft);border-radius:4px;flex:1;min-width:0;padding:8px}
.input.bool{justify-content:center}
.input.bool .slider{background:var(--surface);border-radius:20px;cursor:pointer;inset:0;position:absolute;transition:.3s}
.input.bool .slider:before{background:#ffffff;border-radius:50%;content:"";height:16px;left:6px;position:absolute;top:4px;transition:.3s;width:16px}
.input.bool input{height:0;opacity:0;width:0}
.input.bool input:checked + .slider{background:var(--primary)}
.input.bool input:checked + .slider:before{transform:translateX(84px)}
.input.bool label{height:24px;position:relative;width:111px}
.jumps{background:var(--surface);border-collapse:collapse;box-shadow:0 1px 3px #0000001a;min-width:100%;width:100%}
.jumps td{border-bottom:1px solid var(--border-soft);padding:8px 10px}
.jumps th{background:var(--table-header);border-bottom:2px solid var(--border-soft);font-weight:normal;padding:6px;position:sticky;text-align:left;top:0;z-index:2}
.jumps th,.jumps td{white-space:nowrap}
.jumps thead{position:sticky;top:0;z-index:1}
.jumps tr.hide{display:none}
.jumps tr:hover td{background:var(--row-hover);cursor:pointer}
.label.bool{text-align:center}
.label.child{max-height:100px;overflow-y:auto}
.label.child a{display:block}
.label.number,.input.number input{text-align:right}
.login-container{align-items:center;background:url(/background.webp) center/cover no-repeat;display:flex;height:100dvh;justify-content:center}
.right{text-align:right}
.widget{background:var(--surface);border-radius:8px;box-shadow:0 1px 3px #0000001a;max-height:calc(100vh - 40px);overflow-y:auto;padding:20px;position:sticky;top:20px;z-index:4}
.widget h3{margin:0}
.widget ul{list-style:none;margin:0;padding:0}
.year-break{scroll-margin-top:50px}
.year-break td{background:var(--year-break);font-weight:bold;padding:15px 10px 5px}
.years li{font-size:.9rem}
.years-block{margin-bottom:10px;max-height:180px;overflow-y:auto}
@media (max-width: 600px){
dialog.form .columns{column-count:1;line-height:2em}}
@media (max-width: 968px){
body.app{grid-template-columns:1fr}
body.sidebar-open{overflow:hidden}
body.sidebar-open #sidebar{background:#0009;display:block;inset:0;padding:20px;position:fixed;z-index:5}
body.sidebar-open #sidebar .widget{margin:0 auto;max-height:calc(100vh - 40px);max-width:420px;overflow-y:auto}
body.sidebar-open #sidebarToggle{display:none}
#sidebar{display:none}
#sidebarToggle{display:inline-block}
.jumps th:nth-child(4),.jumps td:nth-child(4),.jumps th:nth-child(7),.jumps td:nth-child(7){display:none}
.widget{position:static;top:auto}
.years-block{max-height:140px}}