:root{--bg:#FBF6EE;--surface:#FFFFFF;--surface-2:#F7EFE3;--border:#EADFCF;--text:#2B2118;--muted:#7A6B5C;--brand:#80501A;--brand-soft:#FBE7CB;--brand-ink:#FFFFFF;--danger:#C2410C;--danger-soft:#FDECE3;--warn:#B45309;--st-wait-bg:#EFE8DE;--st-wait-fg:#6B5E50;--st-work-bg:#FEF3C7;--st-work-fg:#92400E;--st-done-bg:#DCFCE7;--st-done-fg:#166534;--radius:14px;--shadow:0 1px 2px rgba(80,50,16,.05),0 4px 16px rgba(80,50,16,.05)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Pretendard Variable,Pretendard,-apple-system,Apple SD Gothic Neo,Malgun Gothic,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h1{font-size:24px;margin:0 0 4px;letter-spacing:-.02em}h2{font-size:18px;margin:0 0 8px;letter-spacing:-.01em}h3{font-size:16px;margin:0}.muted{color:var(--muted)}.small{font-size:12px}.center{text-align:center}.container{max-width:1120px;margin:0 auto;padding:24px 16px 80px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px}.page-head p{margin:0}.page-msg{padding:60px 16px;text-align:center;color:var(--muted)}.nav{background:var(--surface);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:20}.nav-inner{max-width:1120px;margin:0 auto;padding:0 16px;height:56px;gap:16px}.brand,.nav-inner{display:flex;align-items:center}.brand{gap:8px;font-weight:700;font-size:17px;color:var(--brand)}.brand-logo{width:34px;height:34px;object-fit:contain;display:block}.nav-links{display:flex;align-items:center;gap:4px;margin-left:auto}.nav-links a{padding:6px 10px;border-radius:8px;color:var(--muted);font-weight:500}.nav-links a:hover{background:var(--surface-2);color:var(--text)}.nav-links a.active{background:var(--brand-soft);color:var(--brand)}.nav-user{display:flex;align-items:center;gap:8px;margin-left:8px;padding-left:12px;border-left:1px solid var(--border)}.nav-toggle{display:none;margin-left:auto;background:none;border:0;font-size:22px;cursor:pointer;color:var(--text)}@media (max-width:760px){.nav-toggle{display:block}.nav-links{display:none;position:absolute;top:56px;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--border);flex-direction:column;align-items:stretch;padding:8px 16px 12px}.nav-links.open{display:flex}.nav-user{margin:8px 0 0;padding:8px 0 0;border-left:0;border-top:1px solid var(--border);justify-content:space-between}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.card.narrow{max-width:400px;margin:0 auto}.big-emoji{font-size:40px;margin-bottom:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;background:var(--brand);color:var(--brand-ink);border-radius:10px;padding:9px 14px;font:inherit;font-weight:600;cursor:pointer}.btn:hover{filter:brightness(1.06)}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{background:transparent;color:var(--text);border-color:var(--border)}.btn.ghost:hover{background:var(--surface-2)}.btn.danger{background:var(--danger-soft);color:var(--danger)}.btn.sm{padding:5px 10px;font-size:13px;border-radius:8px}.btn.block{width:100%}input,select,textarea{font:inherit;color:inherit}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:13px;font-weight:600;color:var(--muted)}.input{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:10px 12px;width:100%}.date-input:focus,.inline-select:focus,.input:focus{outline:2px solid var(--brand-soft);border-color:var(--brand)}.error{color:var(--danger);font-size:13px;margin:0 0 10px}.notice{background:var(--brand-soft);color:var(--brand);padding:10px 12px;border-radius:10px;font-size:14px;margin-bottom:12px}.chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tab{border:1px solid var(--border);background:var(--surface);padding:6px 12px;border-radius:999px;cursor:pointer;font:inherit;font-size:13px;color:var(--muted)}.tab.active{background:var(--text);color:var(--surface);border-color:var(--text)}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px 16px}.auth-card{width:100%;max-width:380px}.auth-card .brand{justify-content:center;margin-bottom:18px;font-size:20px;flex-direction:column;gap:6px}.auth-card .brand-logo{width:96px;height:96px}.auth-foot{text-align:center;margin-top:14px;font-size:14px;color:var(--muted)}.auth-foot a{color:var(--brand);font-weight:600}.home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:14px;gap:14px}.home-card{display:block;transition:transform .12s,border-color .12s}.home-card:hover{transform:translateY(-2px);border-color:var(--brand)}.home-card .emoji{font-size:26px}.home-card h3{margin:10px 0 4px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:10px;gap:10px;margin-bottom:20px}.stat .num{font-size:26px;font-weight:700;letter-spacing:-.02em}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.toolbar .input{max-width:240px}.song-list{display:grid;grid-gap:12px;gap:12px}.song-card .song-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.song-card .song-title{font-weight:700;font-size:16px;flex:1 1;min-width:140px}.song-card .song-title input{width:100%}.song-card .song-actions{display:flex;gap:6px;align-items:center}.progress{height:6px;background:var(--surface-2);border-radius:999px;overflow:hidden;margin:12px 0 8px}.progress>span{display:block;height:100%;background:var(--brand);transition:width .2s}.alist{display:grid;grid-gap:6px;gap:6px}.add-assign{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px dashed var(--border)}.add-assign input,.add-assign select{border:1px solid var(--border);border-radius:8px;padding:5px 8px;background:var(--surface);font-size:13px}.arow{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:var(--surface-2);flex-wrap:wrap}.arow.done{opacity:.62}.arow-main{flex:1 1;min-width:100px}.arow-title{font-weight:600}.arow-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.status-select{border:0;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:600;cursor:pointer}.date-input,.inline-select{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:4px 6px;font-size:13px}.ext{display:inline-flex;align-items:center;gap:2px}.ext,.mini{font-size:12px;color:var(--muted)}.mini{border:1px solid var(--border);background:var(--surface);border-radius:6px;width:22px;height:22px;line-height:1;cursor:pointer;padding:0}.mini.danger{color:var(--danger)}.deadline{font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}.deadline.soon{color:var(--warn)}.deadline.over{color:var(--danger)}.group-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:14px;gap:14px}.group-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.empty{color:var(--muted);font-size:13px;padding:8px 2px}.mini-song{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:10px;background:var(--surface-2);margin-bottom:6px}.mini-song .meta{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.cal-head{display:flex;align-items:center;gap:10px}.cal-head h2{margin:0;min-width:120px;text-align:center}.cal{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.cal-dow{padding:8px;font-size:12px;font-weight:600;color:var(--muted);text-align:center;background:var(--surface-2)}.cal-cell,.cal-dow{border-bottom:1px solid var(--border)}.cal-cell{min-height:108px;padding:6px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:4px}.cal-cell:nth-child(7n){border-right:0}.cal-cell.other{background:var(--bg)}.cal-cell.other .cal-day{opacity:.4}.cal-cell.today .cal-day{background:var(--brand);color:var(--brand-ink)}.cal-day{font-size:12px;font-weight:600;width:22px;height:22px;display:grid;place-items:center;border-radius:50%}.cal-item{padding:3px 6px;border-radius:6px;cursor:pointer;text-align:left;border:0;font:inherit;font-size:11px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-item.done{opacity:.5;text-decoration:line-through}.cal-list{display:none}@media (max-width:760px){.cal{display:none}.cal-list{display:grid;grid-gap:10px;gap:10px}}.modal-bg{position:fixed;inset:0;background:rgba(43,33,24,.4);display:grid;place-items:center;padding:16px;z-index:50}.modal{width:100%;max-width:440px}.modal .row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}.modal .row:last-of-type{border-bottom:0}.list-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.list-row:last-child{border-bottom:0}.list-row .grow{flex:1 1;min-width:140px}.list-row .actions{display:flex;gap:6px;flex-wrap:wrap}.section{margin-bottom:22px}.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.inline-form .input{width:auto;flex:1 1;min-width:140px}.color-input{width:38px;height:38px;border:1px solid var(--border);border-radius:10px;padding:2px;background:var(--surface)}