:root{
  --bg:#f6f7f6; --card:#fff; --line:#e3e6e3; --ink:#1f2421; --sub:#6b736d;
  --green:#1f7a52; --green-soft:#e7f3ec; --red:#c0392b; --red-soft:#fbeaea;
  --amber:#b7791f; --amber-soft:#fdf3e1; --blue:#2b5f9e; --blue-soft:#e8f0fa; --gray-soft:#f0f1f0;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#151816; --card:#1d211e; --line:#2e342f; --ink:#e7ebe8; --sub:#9aa39c;
    --green:#4cc38a; --green-soft:#1d3328; --red:#ef7b6e; --red-soft:#3a2222;
    --amber:#e2b45c; --amber-soft:#3a2f1c; --blue:#7fb0ea; --blue-soft:#1d2a3a; --gray-soft:#262b27;
  }
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 "Malgun Gothic","Apple SD Gothic Neo",system-ui,sans-serif}
.boot{padding:40px;text-align:center;color:var(--sub)}
header{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--card);border-bottom:1px solid var(--line);flex-wrap:wrap}
header h1{font-size:17px;margin:0}
header .who{margin-left:auto;color:var(--sub);font-size:13px}
.live{font-size:12px;font-weight:700;color:var(--green)} .live.off{color:var(--red)}
nav{display:flex;gap:4px;padding:8px 16px;background:var(--card);border-bottom:1px solid var(--line);overflow-x:auto}
nav button{border:0;background:none;padding:8px 12px;border-radius:8px;font:inherit;color:var(--sub);cursor:pointer;white-space:nowrap}
nav button.on{background:var(--green-soft);color:var(--green);font-weight:700}
.cnt{display:inline-block;min-width:18px;margin-left:4px;padding:0 5px;border-radius:9px;background:var(--red);color:#fff;font-size:11px;text-align:center}
main{max-width:1180px;margin:0 auto;padding:16px}
h2{font-size:16px;margin:4px 0} .lead{color:var(--sub);margin:0 0 14px;font-size:13px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:14px}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.chip{border:1px solid var(--line);background:var(--card);border-radius:16px;padding:4px 12px;cursor:pointer;font:inherit;font-size:13px;color:var(--ink)}
.chip.on{background:var(--ink);color:var(--card);border-color:var(--ink)}
.tag{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;font-weight:700;white-space:nowrap}
.late{color:var(--red);font-weight:700} .today{color:var(--amber);font-weight:700}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:6px 5px;border-bottom:1px solid var(--line);vertical-align:middle}
th{font-size:12px;color:var(--sub);font-weight:600;white-space:nowrap}
select,input,textarea{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:6px;padding:5px 7px}
td input,td select{width:100%}
textarea{width:100%;min-height:60px}
.btn{border:0;background:var(--green);color:#fff;border-radius:8px;padding:8px 14px;font:inherit;font-weight:700;cursor:pointer}
.btn.sm{padding:4px 10px;font-size:13px}
.btn.ghost{background:var(--card);color:var(--green);border:1px solid var(--green)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.x{border:0;background:none;color:var(--sub);cursor:pointer;font:inherit;font-size:12px;padding:2px 4px;white-space:nowrap}
.x:hover{color:var(--red)}
.warn{background:var(--red-soft);color:var(--red);border-radius:8px;padding:8px 10px;font-weight:700;font-size:13px}
.hint{background:var(--gray-soft);border-radius:8px;padding:8px 10px;font-size:13px;color:var(--sub)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form label{display:block;font-size:12px;color:var(--sub);margin:8px 0 3px}
.form input,.form select{width:100%}
.st{font-size:12px;font-weight:700;border-radius:6px;padding:3px 6px;text-align:center;cursor:pointer;user-select:none;border:0;font-family:inherit;min-width:52px;white-space:nowrap}
.s-연결{background:var(--green-soft);color:var(--green)} .s-빠짐{background:var(--red-soft);color:var(--red)}
.s-요청중{background:var(--amber-soft);color:var(--amber)} .s-확인안됨{background:var(--gray-soft);color:var(--sub)}
.s-해당없음{background:var(--gray-soft);color:var(--sub);opacity:.6}
.a-보냄,.a-처리중{background:var(--amber-soft);color:var(--amber)} .a-완료{background:var(--green-soft);color:var(--green)} .a-멈춤{background:var(--red-soft);color:var(--red)} .a-작성중{background:var(--gray-soft);color:var(--sub)}
.scroll{overflow-x:auto}
.sum{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.sum div{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px}
.sum b{display:block;font-size:22px} .sum span{font-size:12px;color:var(--sub)}
.small{font-size:12px;color:var(--sub)}
.calwrap{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:14px;align-items:start}
.cal{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.cal div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:62px;padding:3px 4px;font-size:11px;cursor:pointer;overflow:hidden}
.cal .dow{min-height:0;text-align:center;color:var(--sub);font-weight:700;cursor:default;padding:4px}
.cal .out{color:var(--sub);opacity:.45}
.cal .sel{outline:2px solid var(--green);outline-offset:-2px}
.cal .td .dn{background:var(--green);color:#fff;border-radius:8px;padding:0 5px}
.cal .dn{font-weight:700;font-size:12px}
.ev{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:4px;padding:0 3px;margin-top:2px;line-height:16px}
.e-boss{background:var(--amber-soft);color:var(--amber)} .e-office{background:var(--green-soft);color:var(--green)} .e-task{background:var(--blue-soft);color:var(--blue)}
.more{color:var(--sub);font-size:11px}
.daylist .it{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.co dl{display:grid;grid-template-columns:64px 1fr;gap:5px 8px;margin:8px 0 0;font-size:13px;align-items:center}
.co dt{color:var(--sub)} .co dd{margin:0} .co dd input{width:100%}
.co h3{margin:0;font-size:15px}
.badges{display:flex;flex-wrap:wrap;gap:4px}
.login{max-width:380px;margin:80px auto;text-align:center}
.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--ink);color:var(--card);padding:8px 14px;border-radius:8px;font-size:13px;z-index:9}
@media (max-width:760px){.grid2,.calwrap{grid-template-columns:1fr}.sum{grid-template-columns:repeat(2,1fr)}
  .rows thead{display:none}.rows tr{display:block;border-bottom:1px solid var(--line);padding:8px 0}.rows td{display:block;border:0;padding:2px 0}
  .cal div{min-height:48px}}
