.shell{min-height:100vh}
.loading{padding:40px;text-align:center;color:var(--muted)}
.auth{min-height:100vh;display:grid;place-items:center;padding:16px;background:linear-gradient(135deg,#eef0fb,#fbf2ea)}
.auth form{background:#fff;border-radius:18px;padding:28px;width:min(400px,100%);box-shadow:0 20px 50px -30px rgba(63,75,125,.5)}
.auth h1{font-size:24px}.auth p{color:var(--muted);margin:4px 0 18px}
.auth label,.form label{display:block;font-size:13px;color:var(--muted);margin-bottom:12px}
.auth input,.form input,.form select,.form textarea,.sheet textarea{width:100%;padding:9px 10px;border-radius:9px;border:1px solid var(--line);margin-top:4px;background:#fff;font:inherit;color:var(--text)}
.form textarea,.sheet textarea{min-height:70px;resize:vertical}
.auth .btn{width:100%;margin-top:6px}.auth .link{display:block;text-align:center;margin-top:14px;font-size:13px;color:var(--muted);background:none;border:0;cursor:pointer;width:100%}
.err{color:var(--bad);font-size:14px;min-height:20px;margin:0 0 6px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.grid3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:0 10px}
.lines{width:100%}.lines input{width:100%}.lines td{padding:4px}.lines .q{width:70px}.lines .p{width:100px}
.x{all:unset;cursor:pointer;color:var(--muted);padding:2px 8px;border-radius:6px}.x:hover{background:var(--badb);color:var(--bad)}
.chk{display:flex;gap:8px;align-items:center;padding:6px 0;font-size:14px}.chk input{width:auto;margin:0}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.spacer{flex:1}
.link-out{word-break:break-all;background:#f6f5fa;border-radius:9px;padding:9px;font-size:13px;margin:8px 0}
.empty{color:var(--muted);padding:18px;text-align:center}
.tag{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.weeknav{display:flex;gap:8px;align-items:center}
.week{grid-template-columns:repeat(7,minmax(120px,1fr))}
.slot{cursor:pointer}
.c0{background:#eef0fb;border-color:#9aa5d6}.c1{background:#ebf5ee;border-color:#9cc8aa}.c2{background:#fbf2df;border-color:#e3c681}
.c3{background:#fbe9ef;border-color:#dba3b6}.c4{background:#e8f3f6;border-color:#93c3d0}.c5{background:#f1ecfb;border-color:#b6a5dc}.cx{background:#f3f3f5;border-color:#c9c9d3}
.setrow{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid #f1eef5}
.setrow small{display:block;color:var(--muted)}
.clock{margin-top:10px;width:100%}
aside .me button{all:unset;cursor:pointer;color:var(--muted);text-decoration:underline;font-size:12px;margin-top:4px}
.kpis.k3{grid-template-columns:repeat(3,1fr)}
@media(max-width:700px){.grid2,.grid3{grid-template-columns:1fr}.kpis.k3{grid-template-columns:1fr}}
