/* The existing APP's practice detail: a summary and its own calendar, without a selector. */
.practice-detail{--detail-purple:#7757ae;--detail-accent:#8864b6;--detail-text:#40375d;--detail-muted:#756a82;--detail-line:#f0ebf7;color:var(--detail-text);font-size:14px;line-height:1.6;padding:1px 0 8px}
.practice-detail h2,.practice-detail h3,.practice-detail strong{font-weight:400}.practice-detail h2,.practice-detail h3,.practice-detail p{margin:0}
.practice-detail button{font-family:inherit;touch-action:manipulation}.practice-detail button:focus-visible{outline:2px solid var(--detail-purple);outline-offset:3px}
.practice-detail-icon{display:block;width:20px;height:20px;flex-shrink:0}
.practice-detail-card{background:#fff;border-radius:18px;padding:18px 16px}
/* Identity keeps its own rows; long names use the full card width. */
.practice-detail-summary{padding-top:12px;padding-bottom:12px}
.practice-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:24px}
.practice-detail-channel{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}
.practice-detail-index{font-size:14px;color:var(--detail-purple);line-height:1.5;white-space:nowrap}
.practice-detail-channel .channel-type{font-size:12px;line-height:16px;padding:3px 6px}
.practice-detail-channel .type-one{color:#6f578f}.practice-detail-channel .type-bow{color:#896024}.practice-detail-channel .type-three{color:#376e68}.practice-detail-channel .type-ten{color:#5266a0}
.practice-detail-heading>button{display:grid;place-items:center;color:var(--detail-purple);flex:0 0 44px;width:44px;height:44px;margin:-10px -12px -10px 0;padding:0}
.practice-detail h2.practice-detail-name{margin:4px 0 0;min-width:0;font-size:20px;line-height:1.4;text-align:left;color:#514959;overflow-wrap:anywhere;word-break:normal;text-wrap:pretty}
.practice-detail-context{display:flex;flex-wrap:wrap;align-items:flex-start;gap:4px 8px;font-size:12px;color:var(--detail-muted);margin-top:2px;line-height:1.5}
.practice-detail-device{display:flex;align-items:flex-start;gap:6px;min-width:0;max-width:100%}
.practice-detail-device>.practice-detail-icon{width:13px;height:16px;margin-top:2px}.practice-detail-device>span{min-width:0;overflow-wrap:anywhere}
.practice-detail-context em{font-size:12px;font-style:normal;background:#f3eff8;border-radius:4px;padding:0 5px;color:#79648e}
.practice-detail-hardware-reading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 8px;padding:8px 0;color:var(--detail-muted)}.practice-detail-hardware-reading>span{font-size:13px;line-height:1.5}
.practice-detail-hardware-reading>strong{font-family:ui-monospace,'SFMono-Regular',Menlo,monospace;font-variant-numeric:tabular-nums;font-size:42px;line-height:1.2;letter-spacing:1px;color:#665086;white-space:nowrap}
.practice-detail-hardware-reading>p{grid-column:1/-1;font-size:12px;line-height:1.5;margin-top:2px;overflow-wrap:anywhere}
/* One compact comparison keeps both periods and all count sources visible. */
.detail-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.practice-detail-count-table{width:100%;table-layout:fixed;border-collapse:collapse;border-top:1px solid var(--detail-line);font-variant-numeric:tabular-nums;margin:0}
.practice-detail-count-table th{font-weight:400;font-size:12px;color:var(--detail-muted);line-height:1.5;text-align:right;padding:3px 0}
.practice-detail-count-table th:first-child{width:31%;text-align:left}
.practice-detail-count-table thead th{padding-top:6px;padding-bottom:2px}
.practice-detail-count-table td{font-size:19px;line-height:1.35;text-align:right;color:var(--detail-purple);padding:2px 0 2px 8px;white-space:nowrap}
.practice-detail-count-table .is-total td{font-size:21px;color:var(--detail-text)}.practice-detail-count-table .is-total th{color:var(--detail-text)}
.practice-detail-total{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 16px}
.practice-detail-total>span{font-size:15px;color:#5c5463;white-space:nowrap}
.practice-detail-total>strong{font-size:27px;line-height:1.3;color:var(--detail-text);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto}
.practice-detail-total>strong.is-wide{font-size:25px}.practice-detail-total>strong.is-long{font-size:21px}
.practice-detail-source-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:12px;color:var(--detail-muted)}
.practice-detail-source-pair>div{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.practice-detail-source-pair>div>span{font-size:13px;line-height:1.6;white-space:nowrap}
.practice-detail-source-pair strong{font-size:21px;line-height:1.4;color:var(--detail-purple);font-variant-numeric:tabular-nums;white-space:nowrap}
.practice-detail-source-pair strong.is-long{font-size:18px}
.practice-detail-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:6px 0;border-top:1px solid var(--detail-line);text-align:left;margin-top:6px}
.practice-detail-metrics>div{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:2px 8px;min-width:0}.practice-detail-metrics>div>span{font-size:12px;color:var(--detail-muted);line-height:1.5}
.practice-detail-metrics strong{font-size:18px;line-height:1.4;color:var(--detail-purple);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.practice-detail-metrics strong.is-wide{font-size:17px}.practice-detail-metrics strong.is-long{font-size:15px}
.practice-detail-today{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:8px;padding-bottom:8px}
.practice-detail-today>span:first-child{font-size:17px;color:#5c5463;flex-shrink:0}.practice-detail-today>strong{font-size:45px;line-height:1.2;color:var(--detail-accent);min-width:0;white-space:nowrap;font-variant-numeric:tabular-nums}
.practice-detail-today>strong.is-wide{font-size:32px}.practice-detail-today>strong.is-long{font-size:23px}.practice-detail-daily-goal{font-size:12px;line-height:1.5;color:var(--detail-muted);max-width:88px;text-align:right;overflow-wrap:anywhere}
.practice-detail-app-total{padding:8px 0;border-top:1px solid var(--detail-line)}
.practice-detail-goal{padding-top:6px;border-top:1px solid var(--detail-line)}.practice-detail-goal>div:first-child{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;min-width:0}
.practice-detail-goal>div:first-child>span:first-child{font-size:14px;color:#5c5463;white-space:nowrap}.practice-detail-goal>div:first-child>strong{font-size:20px;line-height:1.5;color:var(--detail-purple);min-width:0;overflow-wrap:anywhere}
.practice-detail-goal strong>span{font-size:14px}.practice-detail-goal>div:first-child>strong.is-long{font-size:15px}.practice-detail-goal .practice-detail-goal-empty{font-size:12px;color:var(--detail-muted)}
.practice-detail-progress-row{display:flex;align-items:center;gap:8px;margin-top:6px}.practice-detail-progress{height:6px;background:#eee8f7;flex:1;overflow:hidden}
.practice-detail-progress>span{display:block;height:100%;background:#9c7acb}.practice-detail-progress-row>span{font-size:12px;color:var(--detail-purple);line-height:1;min-width:16px;text-align:right}
.practice-detail-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}
.practice-detail-actions>button{min-width:0;min-height:44px;border:1px solid #9277bb;border-radius:9px;font-size:18px;color:#342c44;padding:6px 0;line-height:1.4;background:#fff}.practice-detail-actions>button:hover:not(:disabled){background:#f7f3fb}
.practice-detail-actions>button:active:not(:disabled){background:#efe7f8}
.practice-detail-limit{display:flex;flex-wrap:wrap;align-items:center;gap:0 8px;margin-top:15px;padding:9px 10px;border-radius:9px;background:#fbf4e7;color:#8b632c;font-size:12px}.practice-detail-limit>span{flex:1}.practice-detail-limit>button{font-size:12px;min-height:32px;padding:0;color:#80521d;text-decoration:underline;text-underline-offset:3px}.practice-detail-limit>p{width:100%;font-size:12px}
.practice-detail-calendar{margin-top:12px;padding:8px 15px 16px}
.practice-detail-month-heading{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:8px}.practice-detail-month-heading>h3{text-align:center;font-size:22px;letter-spacing:.2px;line-height:1.5}
.practice-detail-month-heading>button{display:grid;place-items:center;min-height:44px;padding:0;color:var(--detail-purple)}.practice-detail-month-heading .practice-detail-icon{width:19px;height:21px}
.practice-detail-period{display:flex;justify-content:center;flex-wrap:wrap;gap:2px 9px;font-size:13px;line-height:1.6;color:var(--detail-muted);margin-top:1px!important}.practice-detail-period>span+span:before{content:'/';margin-right:9px;color:#b7adbf}
.practice-detail-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;color:#665d70;font-size:14px;margin:8px 0 4px}
.practice-detail-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px 2px}
.practice-detail-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1px solid transparent;border-radius:10px;min-width:0;min-height:44px;padding:3px 0;background:transparent;line-height:1.3}
.practice-detail-day>span{font-size:16px;color:var(--detail-text);line-height:1.4}.practice-detail-day>small{display:block;font-size:12px;line-height:1.35;color:#7b7184;max-width:100%;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.practice-detail-day.has-count>small{color:var(--detail-purple)}.practice-detail-day.is-adjacent>span{color:#7b7184}.practice-detail-day.is-adjacent>small{color:#7b7184}.practice-detail-day.is-adjacent.has-count>small{color:#796b8d}
.practice-detail-day.is-selected{background:#f0eaf8;border-color:#9a80bd}.practice-detail-day.is-selected>span{color:var(--detail-purple)}.practice-detail-day.is-today:not(.is-selected)>span{color:var(--detail-purple);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.practice-detail-day>small.is-long{font-size:10px;letter-spacing:-.3px}
.practice-detail-calendar-tools{display:flex;justify-content:flex-end;margin-top:5px}.practice-detail-calendar-tools>button{color:var(--detail-purple);font-size:12px;min-height:32px;padding:0 2px}
.practice-detail-records{padding-top:6px;scroll-margin-top:12px}.practice-detail-records>h3{font-size:21px;line-height:1.5;margin:0 0 19px}
.practice-detail-day-total{display:flex;align-items:baseline;gap:8px;position:relative;border-top:1px solid #e5deeb;padding:15px 0 0 11px;font-size:17px;color:#5c5463}
.practice-detail-day-total:before{content:'';display:block;width:4px;height:15px;position:absolute;left:0;top:21px;background:#8c70bd}
.practice-detail-day-total>strong{font-size:22px;color:var(--detail-text);overflow-wrap:anywhere;min-width:0;font-variant-numeric:tabular-nums}.practice-detail-day-total>strong.is-wide{font-size:19px}.practice-detail-day-total>strong.is-long{font-size:16px}
.practice-detail-day-total>em{font-size:12px;font-style:normal;color:var(--detail-purple);margin-left:auto;flex-shrink:0}
.practice-detail-records-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:20px;font-size:12px;color:var(--detail-muted)}
.practice-detail-records-heading>button{font-size:12px;color:var(--detail-purple);min-height:32px;padding:0}
.practice-detail-records .record-row{padding:13px 0;gap:7px}.practice-detail-records .record-row:last-child{border-bottom:0}.practice-detail-records .record-icon{width:24px;height:26px;flex:0 0 24px}
.practice-detail-records .record-text{min-width:0}.practice-detail-records .record-text strong{font-size:12px;line-height:1.6}.practice-detail-records .record-text p{font-size:12px;line-height:1.6;color:var(--detail-muted)}
.practice-detail-records .record-qty{font-size:17px;line-height:1.4;max-width:91px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.practice-detail-records .record-qty.deleted{color:var(--detail-muted)}
.practice-detail-records .record-edit{font-size:12px;min-width:28px;min-height:40px;padding:0;color:var(--detail-purple)}
.practice-detail-empty,.practice-detail-records .empty-state,.practice-detail-records .practice-calendar-empty{font-size:14px;color:#6b6175;padding:22px 0 12px;line-height:1.7;text-align:left}
.practice-detail-unknown{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:15px;padding:10px 12px;border-radius:12px;background:#fbf4e7;color:#886026;font-size:12px}.practice-detail-unknown>span{min-width:0;overflow-wrap:anywhere}.practice-detail-unknown>button{display:flex;align-items:center;flex-shrink:0;font-size:12px;min-height:32px;padding:0}.practice-detail-unknown .practice-detail-icon{width:12px;height:15px}
.practice-detail-footer{display:flex;justify-content:center;padding:14px 0 4px}.practice-detail-footer>button{display:flex;align-items:center;gap:3px;font-size:12px;min-height:40px;color:var(--detail-muted);padding:0}.practice-detail-footer .practice-detail-icon{width:12px;height:15px}

.practice-detail-goal.is-unset>div:first-child>span:first-child{font-size:12px}.practice-detail-goal.is-unset>div:first-child{line-height:1.5}
.app-body-calendar{padding-top:10px}
