.reviewEntry{display:flex;align-items:center;justify-content:center;gap:6px;text-align:center;font-size:13px;padding:10px;margin:4px 0 8px}
.reviewCount{font-size:10px;font-weight:500;opacity:.8}
.reviewRow.on{background:#fff0c9;color:#8a5a00;border-radius:10px}
.reviewRow{font-size:16px;flex:none}
#reviewSheet{position:fixed;inset:0;z-index:92;display:flex;align-items:center;justify-content:center;padding:12px;box-sizing:border-box}
#reviewSheet .rvBack{position:absolute;inset:0;background:#14324680}
#reviewSheet .rvCard{position:relative;display:flex;flex-direction:column;width:min(370px,100%);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding:16px;background:#fff;border-radius:22px;box-shadow:0 12px 40px #0004;box-sizing:border-box;color:#245775;min-width:0}
#reviewSheet h2{font-size:19px;line-height:1.4;margin:0 0 10px;overflow-wrap:anywhere;flex:none}
#reviewSheet #rvBody{min-height:0;overflow:auto;overscroll-behavior:contain}
#reviewSheet .rvHelp{font-size:12px;line-height:1.6;color:#52778b;margin:0 0 8px}
#reviewSheet .rvField{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f0f8ff;border-radius:12px;padding:10px;margin:7px 0;font-size:13px}
#reviewSheet select{font:inherit;max-width:75%;min-width:0;color:#245775;border:1px solid #9ccbe2;border-radius:8px;padding:6px}
#reviewSheet input[type=time]{font:inherit;min-width:0;border:1px solid #9ccbe2;border-radius:8px;background:#fff;color:#245775;padding:6px;max-width:53%;box-sizing:border-box}
#reviewSheet input[type=checkbox]{width:20px;height:20px;flex:none;accent-color:#2a95c4}
#reviewSheet #rvPermission{font-size:12px;color:#955c15;line-height:1.5}
#reviewSheet .rvTools{display:flex;flex-wrap:wrap;gap:6px}
#reviewSheet .shopBtn{font-size:11px;white-space:normal;line-height:1.4}
#reviewSheet h3{font-size:13px;margin:15px 0 5px}
#reviewSheet .rvItem{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid #e5eff5}
#reviewSheet .rvItem>div{flex:1;min-width:0;overflow-wrap:anywhere;font-size:13px;line-height:1.6}
#reviewSheet .rvItem span,#reviewSheet .rvItem small{display:block;color:#59798a}
#reviewSheet .rvItem small{font-size:10px;opacity:.8}
#reviewSheet .rvRead{align-items:flex-start;flex-direction:column;padding:15px 0}
#reviewSheet .rvRead strong{font-size:17px}
#reviewSheet #rvFoot{display:flex;gap:8px;padding-top:10px;flex:none}
#reviewSheet #rvFoot .btn{flex:1;min-width:0;font-size:13px;text-align:center;padding:10px 4px;margin:0;overflow-wrap:anywhere}
#reviewSheet button:disabled{opacity:.45}
#reviewSheet :focus-visible{outline:3px solid #16698d}
#reviewSheet h2:focus{outline:none}
@media(max-width:340px){.reviewRow{padding:5px!important;min-width:25px}.reviewEntry{font-size:12px}.reviewCount{font-size:9px}}

#reviewSheet .saItems{max-height:220px;overflow:auto;overscroll-behavior:contain}

/* Unified song alarm editor: only words scroll; schedule and actions stay visible. */
#reviewSheet.songEditor .rvCard{max-height:calc(100dvh - 24px);padding:20px 18px 16px}
#reviewSheet.songEditor h2{font-size:20px;margin-bottom:20px}
#reviewSheet.songEditor #rvBody{display:flex;flex-direction:column;overflow:auto;gap:0}
#reviewSheet .saMainSettings{background:#eff9fd;border:1px solid #d9edf6;border-radius:16px;padding:0 14px;flex:none}
#reviewSheet .saSettingRow{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:49px;font-size:13px}
#reviewSheet .saMainSettings .saSettingRow+.saSettingRow{border-top:1px solid #dceef5}
#reviewSheet input.saSwitch{appearance:none;-webkit-appearance:none;border:0;width:36px;height:22px;min-width:36px;border-radius:20px;background:#d1e2ea;padding:3px;margin:0;cursor:pointer}
#reviewSheet input.saSwitch::after{content:'';display:block;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #255a7522}
#reviewSheet input.saSwitch:checked{background:#3ca5cf}
#reviewSheet input.saSwitch:checked::after{margin-left:auto}
/* 아랍어(RTL)는 안드로이드처럼 켜짐 = 왼쪽 (2026-10-22 사장) */
html[dir=rtl] #reviewSheet input.saSwitch::after{margin-left:auto}
html[dir=rtl] #reviewSheet input.saSwitch:checked::after{margin-left:0}
#reviewSheet .saTimeBox{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#eff9fd;border:1px solid #d9edf6;border-radius:16px;padding:10px 14px;margin-top:10px;font-size:13px;flex:none}
#reviewSheet .saTimeBox input{font-size:18px;font-weight:800;color:#2c8eb7;padding:8px;max-width:56%;border-radius:11px;background:white}
#reviewSheet .saListHeading{display:flex;align-items:center;justify-content:space-between;gap:9px;margin:20px 0 9px;font-size:13px;flex:none}
#reviewSheet #saCount{background:#eaf6fc;color:#2d95bf;border-radius:8px;padding:5px 8px;font-size:11px;font-weight:700;white-space:nowrap}
#reviewSheet .saWordList{height:clamp(120px,25vh,220px);flex:0 1 auto;min-height:85px;overflow-y:auto;overscroll-behavior:contain;border-top:1px solid #edf3f7;border-bottom:1px solid #edf3f7;scrollbar-width:thin;scrollbar-color:#b6d9e9 #f4f9fc;padding-inline-end:5px}
#reviewSheet .saWordList .rvItem{padding:10px 0;min-height:61px}
#reviewSheet .saPick{display:flex;align-items:center;gap:8px;flex:1;min-width:0}
#reviewSheet .saPick input{width:16px;height:16px;flex:none}
#reviewSheet .saPick div{flex:1;min-width:0;overflow-wrap:anywhere;font-size:13px}
#reviewSheet .saPick strong{font-size:13px;line-height:1.5}
#reviewSheet .saPick span{font-size:11px;color:#7a9bad;margin-top:3px}
#reviewSheet .saRemove{flex:none;width:28px;height:28px;border:1px solid #d8eaf3;border-radius:9px;background:#f4faff;color:#7aa4b7;font-size:18px;line-height:1}
#reviewSheet .saMusicRow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:14px;background:#eff9fd;border:1px solid #d9edf6;font-size:12px;margin-top:14px;flex:none}
#reviewSheet .saMusicRow select{max-width:60%;background:#fff}
#reviewSheet .saMore{font-size:11px;color:#6d93a8;margin-top:8px;flex:none}
#reviewSheet .saMore summary{cursor:pointer;padding:5px 1px}
#reviewSheet .saCreate{flex:none;display:block;margin:10px 0 0;text-align:center;background:#eff9fd;border:1px solid #d9edf6;color:#286b8b;box-shadow:none;font-size:13px;min-height:44px;border-radius:15px;padding:10px}
#reviewSheet .saPreview{display:flex;gap:12px;justify-content:center;margin-top:6px;flex:none}
#reviewSheet .saPreview button{border:0;background:none;font-family:inherit;font-size:11px;color:#5b8ca5;padding:8px;min-height:32px}
#reviewSheet.songEditor .rvHelp{font-size:11px;margin:5px 0 0}
#reviewSheet.songEditor .rvHelp:empty{display:none}
#reviewSheet.songEditor #rvFoot{padding-top:14px}
#reviewSheet.songEditor #rvFoot .btn{border-radius:14px;min-height:43px}
@media(max-height:700px){#reviewSheet.songEditor .rvCard{padding:14px}#reviewSheet.songEditor h2{margin-bottom:10px;font-size:18px}#reviewSheet .saSettingRow{min-height:40px}#reviewSheet .saListHeading{margin-top:12px}#reviewSheet .saWordList{height:120px}#reviewSheet .saMusicRow{margin-top:9px}}

/* ISO weekdays, shown in local-language Monday-to-Sunday order. */
#reviewSheet .saTimeBox{flex-wrap:wrap;gap:10px}
#reviewSheet .saTimeBox>label{font-size:13px}
#reviewSheet .saWeekdays{width:100%;display:flex;justify-content:space-between;gap:5px;border-top:1px solid #dceef5;padding-top:10px}
#reviewSheet .saWeekdays button{appearance:none;flex:1;min-width:0;max-width:38px;aspect-ratio:1;border:1px solid #d5e9f2;background:#fff;color:#7d9daf;border-radius:50%;padding:0 2px;font-family:inherit;font-size:11px;line-height:1.2;overflow-wrap:anywhere;cursor:pointer}
#reviewSheet .saWeekdays button[aria-pressed=true]{background:#399fca;color:#fff;border-color:#399fca;font-weight:700}
#reviewSheet .saWeekdays button:focus-visible{outline:3px solid #195e82;outline-offset:2px}

/* Compact music/preview row frees room for words and weekday buttons. */
#reviewSheet .saMusicRow{padding:8px 10px;gap:7px;min-height:48px}
#reviewSheet .saMusicRow>span{font-size:12px;white-space:nowrap}
#reviewSheet .saMusicRow select{flex:1;min-width:0;max-width:42%;padding:7px 4px;font-size:12px}
#reviewSheet #saPlay{border:0;background:none;color:#368caf;font-family:inherit;font-size:11px;white-space:nowrap;padding:7px 0;min-height:32px}
#reviewSheet .saMeaningRow{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;font-size:12px;min-height:42px;flex:none}
#reviewSheet .saWordList{height:clamp(160px,29vh,260px)}
/* Alarm music uses the same rounded dialog and blue selection language as app menus. */
#reviewSheet .saMusicRow{flex-wrap:wrap}
#reviewSheet .saMusicRow>span{white-space:normal;overflow-wrap:anywhere}
#reviewSheet .saGenreButton{display:flex;align-items:center;justify-content:space-between;gap:7px;flex:1;min-width:84px;max-width:100%;min-height:36px;padding:7px 9px;border:1px solid #b7ddec;border-radius:12px;background:#fff;color:#327a9d;font:inherit;text-align:start;cursor:pointer}
#reviewSheet .saGenreButton span{min-width:0;overflow-wrap:anywhere}
#reviewSheet .saGenreButton svg{flex:none}
#saMusicPicker .saMusicDialog{width:min(350px,100%);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;gap:12px;padding:20px}
#saMusicPicker h2{margin:0;font-size:19px;flex:none}
#saMusicPicker .saGenreList{display:grid;gap:7px;max-height: min(56dvh,440px);min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:3px}
#saMusicPicker .saGenreOption{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:10px 13px;border:1px solid #d6eaf4;border-radius:13px;background:#f5fbfe;color:#397c9d;font:inherit;font-size:14px;line-height:1.5;text-align:start;cursor:pointer}
#saMusicPicker .saGenreOption>span:first-child{min-width:0;overflow-wrap:anywhere}
#saMusicPicker .saGenreOption[aria-checked=true]{border-color:#45a7d3;background:#e5f5fc;color:#236f96;font-weight:700}
#saMusicPicker .saGenreMark{display:grid;place-items:center;flex:none;width:21px;height:21px;border:1px solid #bcdce9;border-radius:50%;background:#fff;font-size:14px}
#saMusicPicker [aria-checked=true] .saGenreMark{background:#339fcd;border-color:#339fcd;color:#fff}
#saMusicPicker .learnButton{flex:none;min-height:44px;width:100%;margin:0}
#saMusicPicker button:focus-visible,#reviewSheet .saGenreButton:focus-visible{outline:2px solid #247ca5;outline-offset:2px}
