:root{color-scheme:light;--blue:#1a73e8;--blue-dark:#174ea6;--border:#dadce0;--muted:#5f6368;--bg:#f8f9fa;--danger:#d93025}
*{box-sizing:border-box}body{font:14px Arial,sans-serif;color:#202124;margin:0;background:var(--bg)}.wrap{max-width:1100px;margin:auto;padding:18px}.header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-bottom:12px}.brand{font-size:30px;font-weight:900;letter-spacing:-2px;color:#324bc4}.card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:14px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.tabs button{font:inherit;background:#e8f0fe;color:var(--blue-dark);border:0;border-radius:18px;padding:9px 15px;cursor:pointer}.tabs button.active{background:var(--blue);color:#fff}h1{font-size:20px;margin:0 0 5px}h2{font-size:16px;margin:0 0 10px}.history-title{margin-top:14px}label{display:block;font-weight:600;margin:9px 0 4px}select,input,textarea{font:inherit;width:100%;padding:9px;border:1px solid #bdc1c6;border-radius:5px;background:#fff}textarea{min-height:70px}.row{display:grid;grid-template-columns:1.3fr .7fr auto;gap:8px;align-items:end;margin:7px 0}.btn{font:inherit;border:0;border-radius:5px;padding:9px 13px;cursor:pointer}.btn:disabled{opacity:.55;cursor:not-allowed}.primary{background:var(--blue);color:#fff}.danger{background:var(--danger);color:#fff}.secondary{background:#f1f3f4;color:#202124}.muted{color:var(--muted);font-size:12px}.msg{padding:10px;border-radius:5px;margin:10px 0;display:none}.ok{display:block;background:#e6f4ea;color:#137333}.err{display:block;background:#fce8e6;color:#c5221f}.summary{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px}.summary span,.account{background:#f1f3f4;border-radius:6px;padding:8px 10px}.request{border-top:1px solid #eee;padding:10px 0}.conflict{color:#c5221f;white-space:pre-wrap;margin-top:10px}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}.hide{display:none!important}.check{display:flex;align-items:center;gap:7px}.check input{width:auto}.loader{display:none;color:var(--muted);margin:8px 0}.log-meta{color:var(--muted);font-size:12px;margin-top:4px}.status-change{font-weight:600}.calendar-tools{display:grid;grid-template-columns:minmax(180px,280px) auto;gap:8px;align-items:end}.calendar-wrap{overflow:auto;max-height:68vh;border:1px solid var(--border);border-radius:6px;margin-top:12px}.calendar-loading{padding:12px}.calendar{border-collapse:separate;border-spacing:0;min-width:100%;font-size:11px}.calendar th,.calendar td{border-right:1px solid #e8eaed;border-bottom:1px solid #e8eaed;padding:4px;text-align:center;min-width:24px;height:23px}.calendar th{position:sticky;top:0;background:#f1f3f4;z-index:2}.calendar .person{position:sticky;left:0;background:#fff;text-align:left;min-width:220px;z-index:1}.calendar th.person{background:#f1f3f4;z-index:3}.calendar .away{background:#aecbfa;color:var(--blue-dark);font-weight:700}.calendar .approved{background:#ceead6;color:#137333}.calendar .conflicted{background:#fce8e6;color:#c5221f}.weekend{background:#f8f9fa}.legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}.legend span:before{content:'';display:inline-block;width:12px;height:12px;margin-right:5px;vertical-align:-2px;border-radius:2px}.legend .l-approved:before{background:#ceead6}.legend .l-away:before{background:#aecbfa}.legend .l-conflict:before{background:#fce8e6}.login-card{max-width:520px;margin:30px auto}.divider{display:flex;align-items:center;gap:10px;color:var(--muted);margin:18px 0}.divider:before,.divider:after{content:"";height:1px;background:var(--border);flex:1}.code-row{display:grid;grid-template-columns:1fr auto;gap:8px}.code-row input{font-size:22px;letter-spacing:8px;text-align:center}code{font-family:Consolas,monospace}.queue-empty{padding:12px 0}
@media(max-width:640px){.wrap{padding:12px}.header{grid-template-columns:auto 1fr}.header>.btn{grid-column:1/-1;justify-self:end}.row{grid-template-columns:1fr 100px}.row>.btn{grid-column:1/-1}.calendar-tools{grid-template-columns:1fr}.code-row{grid-template-columns:1fr}.brand{font-size:25px}.tabs{overflow:auto;flex-wrap:nowrap;padding-bottom:4px}.tabs button{white-space:nowrap}}
