/* v2-p16: "New Plan" dial creator, Swiss editorial */
.p16 { --p16-bg: #FFFFFF; --p16-ink: #111; --p16-mut: #555; --p16-acc: #3B3FD8;
  position: fixed; inset: 0; z-index: 900; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain;
  background: var(--p16-bg); color: var(--p16-ink); font-family: Inter, system-ui, sans-serif;
  opacity: 0; transform: translateY(24px); transition: opacity .28s ease, transform .4s cubic-bezier(.2,.9,.25,1.1); }
.p16.in { opacity: 1; transform: none; } .p16.out { opacity: 0; transform: translateY(24px); transition-duration: .22s; }
html[data-theme="dark"] .p16 { --p16-bg: #0B0B0B; --p16-ink: #FFFFFF; --p16-mut: #A8A6A2; --p16-acc: #A9A6FF; }
html.p16-on body { overflow: hidden; }
.p16-body { max-width: 480px; margin: 0 auto; padding: calc(env(safe-area-inset-top) + 14px) 20px calc(env(safe-area-inset-bottom) + 28px); }
.p16-top { display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; padding-bottom: 12px; border-bottom: 2px solid var(--p16-ink); }
.p16-round { width: 44px; height: 44px; border: 2px solid var(--p16-ink); border-radius: 0; background: none; color: var(--p16-ink); font: 600 24px/1 Inter, sans-serif; cursor: pointer; transition: transform .18s cubic-bezier(.3,1.6,.5,1), background .15s; }
.p16-round:active, .p16-step:active, .p16-type:active, .p16-act:active { transform: scale(.94); }
.p16-title { text-align: center; } .p16-title strong { display: block; font: 900 22px/1 Inter, sans-serif; letter-spacing: -.03em; }
.p16-title small { display: block; color: var(--p16-acc); font: 600 10px Inter, sans-serif; letter-spacing: 2px; text-transform: uppercase; margin-top: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.p16-mode { display: grid; grid-template-columns: 1fr 1fr; margin: 14px 0 0; border: 2px solid var(--p16-ink); }
.p16-mode button { border: 0; background: none; color: var(--p16-ink); font: 600 11px Inter, sans-serif; letter-spacing: 1.5px; text-transform: uppercase; padding: 11px 6px; cursor: pointer; }
.p16-mode button + button { border-left: 2px solid var(--p16-ink); }
.p16-mode button[aria-pressed="true"] { background: var(--p16-ink); color: var(--p16-bg); }
.p16-dialwrap { position: relative; width: min(330px, 86vw); margin: 8px auto 0; }
.p16-dial { position: relative; aspect-ratio: 1; touch-action: none; outline: none; }
.p16-dial:focus-visible { outline: 2px solid var(--p16-acc); outline-offset: 4px; }
.p16-svg { width: 100%; height: 100%; display: block; overflow: visible; }
.p16-ticks line { stroke: var(--p16-ink); stroke-width: 2; }
.p16-face { fill: none; stroke: var(--p16-ink); stroke-width: 2; }
.p16-ring { fill: none; stroke: var(--p16-ink); stroke-opacity: .18; stroke-width: 8; }
.p16-arc { fill: none; stroke: var(--p16-acc); stroke-width: 8; stroke-linecap: butt; }
.p16-knob { fill: var(--p16-acc); stroke: var(--p16-bg); stroke-width: 3; cursor: grab; transition: r .18s cubic-bezier(.3,1.6,.5,1); }
.p16-dial.drag .p16-knob { r: 13; cursor: grabbing; }
.p16-center { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 4px; padding-bottom: 40px; pointer-events: none; }
.p16-pill { font: 600 10px Inter, sans-serif; letter-spacing: 2px; text-transform: uppercase; padding: 4px 8px; background: var(--p16-ink); color: var(--p16-bg); }
.p16-num { font: 900 88px/.9 Inter, sans-serif; letter-spacing: -.06em; font-variant-numeric: tabular-nums; }
.p16-num.p16-bump { animation: p16bump .34s cubic-bezier(.3,1.7,.5,1); }
@keyframes p16bump { 0% { transform: translateY(6px); opacity: .6; } 100% { transform: none; opacity: 1; } }
.p16-unit { font: 600 11px Inter, sans-serif; letter-spacing: 2px; text-transform: uppercase; color: var(--p16-acc); }
.p16-step { position: absolute; top: 50%; width: 46px; height: 46px; margin-top: -23px; border: 2px solid var(--p16-ink); border-radius: 0; background: var(--p16-bg); color: var(--p16-ink); font: 600 24px/1 Inter, sans-serif; cursor: pointer; transition: transform .18s cubic-bezier(.3,1.6,.5,1); }
.p16-step { top: auto; bottom: 14%; margin-top: 0; } .p16-minus { left: calc(50% - 54px); } .p16-plus { right: calc(50% - 54px); }
.p16-min, .p16-max { position: absolute; bottom: 3%; font: 600 11px Inter, sans-serif; letter-spacing: 1.5px; } .p16-min { left: 0; } .p16-max { right: 0; }
.p16-live { margin: 10px 0 0; padding: 12px 0; border-top: 2px solid var(--p16-ink); border-bottom: 1px solid var(--p16-ink); font: 700 15px Inter, sans-serif; min-height: 20px; }
.p16-types { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--p16-ink); }
.p16-type { border: 0; border-right: 1px solid var(--p16-ink); background: none; color: var(--p16-ink); display: grid; justify-items: start; gap: 10px; padding: 14px 8px 12px; cursor: pointer; font: inherit; text-align: left; transition: background .15s, color .15s; }
.p16-type:last-child { border-right: 0; }
.p16-type small { font: 600 10px/1.25 Inter, sans-serif; letter-spacing: 1.2px; text-transform: uppercase; }
.p16-type[aria-pressed="true"] { background: var(--p16-acc); color: #fff; }
.p16-ic { display: block; }
.p16-grid { display: grid; grid-template-columns: 1.2fr 1fr; border-bottom: 1px solid var(--p16-ink); }
.p16-col { display: grid; border-left: 1px solid var(--p16-ink); }
.p16-sched { padding: 14px 12px 14px 0; }
.p16-th { display: flex; justify-content: space-between; align-items: baseline; font: 600 10px Inter, sans-serif; letter-spacing: 2px; text-transform: uppercase; }
.p16-wk { color: var(--p16-mut); letter-spacing: 1px; }
.p16-ft { display: grid; grid-template-columns: 1fr 1fr; margin: 10px 0; border: 1px solid var(--p16-ink); }
.p16-mini { position: relative; padding: 8px; display: grid; gap: 4px; } .p16-mini + .p16-mini { border-left: 1px solid var(--p16-ink); }
.p16-mini small { font: 600 9px Inter, sans-serif; letter-spacing: 1.5px; text-transform: uppercase; color: var(--p16-mut); } .p16-mini strong { font: 800 17px Inter, sans-serif; letter-spacing: -.02em; }
.p16-mini input[type=date] { position: absolute; inset: 0; opacity: 0; width: 100%; cursor: pointer; }
.p16-week { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--p16-ink); }
.p16-week button { border: 0; background: none; color: var(--p16-ink); font: 700 12px Inter, sans-serif; padding: 7px 0; cursor: pointer; }
.p16-week button + button { border-left: 1px solid var(--p16-ink); }
.p16-week button[aria-pressed="true"] { background: var(--p16-ink); color: var(--p16-bg); }
.p16-act { border: 0; background: none; display: flex; align-items: center; gap: 10px; padding: 14px 12px; color: var(--p16-ink); font: 600 11px Inter, sans-serif; letter-spacing: 1.5px; text-transform: uppercase; cursor: pointer; text-align: left; transition: transform .18s cubic-bezier(.3,1.6,.5,1); }
.p16-act + .p16-act { border-top: 1px solid var(--p16-ink); }
.p16-ic2 { display: grid; place-items: center; flex: none; }
.p16-go { background: var(--p16-ink); color: var(--p16-bg); justify-content: space-between; }
.p16-group { display: flex; gap: 10px; align-items: center; margin-top: 14px; font: 600 10px Inter, sans-serif; letter-spacing: 1.5px; text-transform: uppercase; }
.p16-pickseg { margin: 0 0 12px; }
.p16-picklist { display: grid; border-top: 2px solid currentColor; }
.p16-pickrow { display: grid; text-align: left; gap: 3px; border: 0; border-bottom: 1px solid currentColor; background: none; padding: 14px 0; font: 800 17px Inter, sans-serif; letter-spacing: -.01em; color: inherit; cursor: pointer; }
.p16-pickrow small { font: 600 10px Inter, sans-serif; letter-spacing: 1.5px; text-transform: uppercase; opacity: .65; }
.p16-entry { display: flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%; margin: 4px 0 18px; padding: 14px; border: 0; border-radius: 0; background: var(--ink, #111); color: var(--paper, #FFFFFF); text-align: left; font: inherit; cursor: pointer; }
.p16-entry strong { display: block; font: 600 11px Inter, sans-serif; letter-spacing: 2px; text-transform: uppercase; } .p16-entry small { opacity: .7; font-size: 12.5px; } .p16-entry > span:nth-child(2) { flex: 1; }
.p16-entry-plus { display: none; } .p16-go2 { font-size: 22px; }
#v2-sheet, #v2-scrim { z-index: 950 !important; }
@media (prefers-reduced-motion: reduce) { .p16, .p16 * { transition: none !important; animation: none !important; } }
