/* Shared palette and type scale. Rem units preserve browser text enlargement. */
:root {color-scheme:light;
  font-size:100%;
  --canvas:#F5F7F8;
  --paper:#FFFFFF;
  --ink:#1F2937;
  --text:#334155;
  --muted:#475569;
  --accent:#1F6B63;
  --accent-dark:#174F49;
  --selected:#EAF3F0;
  --info:#F1F5F4;
  --line:#D9E2E5;
  --control:#64748B;
  --green:var(--accent);
  --radius:12px;
  --card-radius:18px;
  --title:1.625rem;
  --section:1.375rem;
  --label:1.125rem;
  --body:1.0625rem;
  --help:1rem;
  --note:.9375rem;
  --tap:3.25rem;
  --action-bar-height:8rem;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Yu Gothic",Meiryo,sans-serif;
  color:var(--text);
  background:var(--canvas);
  line-height:1.7;
  font-synthesis:none;
  scroll-padding-block:1rem calc(var(--action-bar-height) + 1.5rem);
  overflow-anchor:none}
html[data-text-size="small"] {font-size:87.5%}
html[data-text-size="large"] {font-size:125%}
* {box-sizing:border-box}
[hidden] {display:none!important}
body {margin:0;padding-bottom:calc(var(--action-bar-height) + 1.5rem);font-size:var(--body)}
button,input,select,textarea {font:inherit;color:inherit}
button,a,input,select,textarea,summary { -webkit-tap-highlight-color:transparent;scroll-margin-block:1rem calc(var(--action-bar-height) + 1.5rem)}
button {cursor:pointer}
button:disabled {cursor:not-allowed}
button,summary,label,input,textarea {touch-action:manipulation}
button,a,summary {overflow-wrap:anywhere}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,.text-input:focus-within,.preset-name:focus-within,.prompt-editor:focus-within {outline:3px solid var(--accent);outline-offset:4px}
a {color:var(--accent-dark);text-underline-offset:4px}
h1,h2,h3,p {margin:0}
h1,h2,h3 {color:var(--ink);line-height:1.5}
h1 {font-size:var(--title);font-weight:700}
h2 {font-size:var(--section);font-weight:700}
h3 {font-size:var(--label);font-weight:600}
button,.choice,.text-size-control label {min-height:48px;border-radius:var(--radius)}
button {border:1.5px solid var(--control);padding:.65rem 1rem;background:var(--paper);font-size:var(--label);font-weight:600;line-height:1.5}
button:not(:disabled):hover {background:var(--info);border-color:var(--accent)}
button:not(:disabled):active,.choice:active {background:var(--selected)}
button:disabled {color:var(--muted);background:var(--info);border-color:var(--control);border-style:dashed}
.primary-button {background:var(--accent);color:#fff;border-color:var(--accent)}
.primary-button:not(:disabled):hover,.primary-button:not(:disabled):active {background:var(--accent-dark);color:#fff;border-color:var(--accent-dark)}
.copy-button,.load-preset {color:var(--accent-dark);border-color:var(--accent)}
.text-button {font-size:var(--body);font-weight:500}
.site-header {background:var(--paper);border-bottom:1px solid var(--line)}
.header-inner {max-width:1240px;margin:auto;padding:18px 28px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.brand {display:flex;align-items:center;gap:12px;min-width:0;text-decoration:none;color:var(--ink);font-size:1.5rem;font-weight:700;line-height:1.4}
.brand>span:last-child {min-width:0;overflow-wrap:anywhere}
.brand-mark {flex-shrink:0;display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:var(--accent);color:#fff;font-family:serif;font-size:2rem}
.brand small {display:block;margin-top:4px;color:var(--muted);font-size:var(--note);font-weight:400}
.version-tools {display:flex;align-items:flex-end;flex-direction:column;gap:2px;margin-left:auto;color:var(--accent-dark);font-size:var(--help);font-weight:700}
.creator-credit {color:var(--muted);font-size:var(--note);font-weight:500}
.page-shell {max-width:1240px;padding:0 28px;margin:auto}
.display-toolbar {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 24px;padding-block:20px}
.text-size-control {border:0;margin:0;padding:0;min-width:0}
.text-size-control legend {padding:0;margin-bottom:8px;font-size:var(--body);font-weight:600}
.text-size-control label {display:inline-flex;align-items:center;gap:8px;padding:.55rem .75rem;border:2px solid var(--control);background:var(--paper);cursor:pointer;font-size:var(--body)}
.text-size-control label:has(input:checked) {background:var(--selected);border-color:var(--accent);font-weight:600}
input[type="checkbox"],input[type="radio"] {appearance:none;position:relative;flex:0 0 1.375rem;width:1.375rem;height:1.375rem;margin:0;border:2px solid var(--control);background:var(--paper);border-radius:4px}
input[type="radio"] {border-radius:50%}
input:checked {background:var(--accent);border-color:var(--accent)}
input[type="checkbox"]:checked:before {content:"";display:block;width:.375rem;height:.6875rem;margin:.0625rem 0 0 .375rem;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
input[type="radio"]:checked:before {content:"";display:block;position:absolute;inset:25%;border-radius:50%;background:#fff}
input:disabled {cursor:not-allowed}
.intro {padding:8px 0 24px}
.eyebrow {color:var(--accent-dark);font-size:var(--note);font-weight:600;letter-spacing:.04em;margin-bottom:6px}
.intro>p:not(.eyebrow) {margin-top:10px}
.intro .intro-note {color:var(--muted);font-size:var(--help)}
.steps {display:flex;flex-wrap:wrap;gap:10px 22px;padding:0;margin:18px 0 16px;list-style:none;font-size:var(--body);font-weight:600}
.steps li {display:flex;align-items:center;gap:8px}
.steps li span {display:grid;place-items:center;width:28px;height:28px;flex-shrink:0;border-radius:50%;background:var(--selected);color:var(--accent-dark)}
.mobile-break {display:none}
.help-disclosure {background:var(--info);border:1px solid var(--line);border-radius:var(--radius)}
.help-disclosure>summary {padding:12px 16px;min-height:48px;cursor:pointer;color:var(--text);font-size:var(--body);font-weight:500}
.priority-definitions {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;padding:0 16px 16px;margin:0;font-size:var(--help)}
.priority-definitions>div {display:flex;gap:10px;align-items:flex-start}
.priority-definitions dt {font-weight:700;white-space:nowrap;padding:2px 8px;border:1px solid var(--control);border-radius:6px;color:var(--accent-dark);background:var(--paper)}
.priority-definitions dd {margin:0}
.preset-panel {border:1px solid var(--line);border-radius:var(--card-radius);margin-bottom:24px;background:var(--paper)}
#preset-manager>summary {display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:16px 20px;min-height:64px;list-style:none}
#preset-manager>summary::-webkit-details-marker {display:none}
#preset-manager>summary:after {content:"＋";flex-shrink:0;color:var(--accent-dark);font-size:var(--section)}
#preset-manager[open]>summary:after {content:"−"}
#preset-title {font-size:1.25rem}
.preset-content {padding:0 20px 20px}
.preset-content>.helper {margin:0 0 16px}
.preset-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.preset-card {padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);min-width:0}
.preset-card.is-loaded {border:2px solid var(--accent);background:var(--selected)}
.preset-card-head {display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 12px;align-items:center}
.preset-index {color:var(--accent-dark);font-size:var(--body);font-weight:700}
.preset-name {width:100%;min-width:0;min-height:var(--tap);padding:10px 12px;border:2px solid var(--control);border-radius:var(--radius);background:var(--paper);font-size:var(--label);font-weight:600}
.preset-state {grid-column:2;color:var(--muted);font-size:var(--help)}
.preset-actions {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}
.preset-actions .load-preset {grid-column:1;grid-row:1;background:var(--accent);color:#fff}
.preset-actions .load-preset:disabled {background:var(--info);color:var(--muted)}
.preset-actions .delete-preset {grid-column:1/-1;margin-top:6px}
.preset-actions button {padding:.6rem .4rem;font-size:var(--body)}
.draft-status {display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:12px 20px;border-top:1px solid var(--line);font-size:var(--help)}
#draft-label {color:var(--accent-dark);font-weight:600}
#save-status {color:var(--muted);margin-left:auto}
.workspace {display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:24px;align-items:start}
.workspace>* {min-width:0}
.form-caption {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.priority-guide {font-size:var(--body);margin:0 0 16px}
.priority-sample {font-weight:600}
.section-card {border:1px solid var(--line);border-radius:var(--card-radius);background:var(--paper);margin-bottom:20px}
.section-card>summary {display:flex;align-items:flex-start;gap:12px;padding:18px 20px;min-height:76px;cursor:pointer;list-style:none}
.section-card>summary::-webkit-details-marker {display:none}
.section-card>summary:after {content:"＋";font-size:var(--section);color:var(--accent-dark);margin-left:auto;flex-shrink:0}
.section-card[open]>summary:after {content:"−"}
.section-card[open]>summary {border-bottom:1px solid var(--line)}
.section-number {color:var(--accent-dark);font-size:var(--body);font-weight:700;padding-top:3px}
.section-heading {flex:1;min-width:0}
.section-title {display:block;font-size:var(--section);color:var(--ink);font-weight:700}
.section-current {display:block;font-size:var(--help);color:var(--muted);margin-top:4px;overflow-wrap:anywhere;font-weight:400}
.section-content {padding:0 20px}
.condition {padding:22px 0;border-bottom:1px solid var(--line)}
.condition:last-child {border-bottom:0}
.condition-head {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.condition-head h3 {flex:1 1 8rem;min-width:0}
.condition-head .priority-button {flex:0 0 auto}
.priority-button {min-width:6rem;min-height:48px;padding:10px 12px;font-size:var(--body);font-weight:600;border:2px solid var(--accent)}
.priority-button:after {content:"↻";margin-left:8px}
.priority-button.required {background:var(--accent);color:#fff}
.priority-button.required:not(:disabled):hover {background:var(--accent-dark);color:#fff}
.priority-button.important {background:var(--selected);color:var(--accent-dark)}
.priority-button.preferred {color:var(--accent-dark);background:var(--paper)}
.priority-button.excluded {border-style:dashed;border-color:var(--control);color:var(--muted);background:var(--info)}
.choice-list {display:flex;flex-wrap:wrap;gap:10px}
.choice {display:flex;flex:1 1 9rem;align-items:center;gap:10px;min-width:0;min-height:var(--tap);padding:12px;border:2px solid var(--control);border-radius:var(--radius);background:var(--paper);color:var(--text);font-size:var(--label);font-weight:400;cursor:pointer;line-height:1.55}
.choice span {min-width:0;overflow-wrap:anywhere}
.choice:has(input:checked) {border-color:var(--accent);background:var(--selected);color:var(--accent-dark);font-weight:600}
.choice:has(input:focus-visible) {outline:3px solid var(--accent);outline-offset:3px}
.choice:has(input:disabled) {background:var(--info);border-color:var(--control);border-style:dashed;color:var(--muted);cursor:not-allowed}
.choice:has(input:disabled) input:checked {background:var(--muted);border-color:var(--muted)}
.check-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:10px}
.genres-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
[data-choices="relativeDay"],[data-choices="areaType"],[data-choices="weekdays"] {display:grid;width:100%;gap:10px}
[data-choices="areaType"] {grid-template-columns:repeat(2,minmax(0,1fr))}
[data-choices="relativeDay"] {grid-template-columns:repeat(3,minmax(0,1fr))}
[data-choices="relativeDay"] .choice {flex-direction:column;gap:4px;padding:10px 6px}
[data-choices="weekdays"] {grid-template-columns:repeat(auto-fit,minmax(4.5rem,1fr))}
[data-choices="weekdays"] .choice {justify-content:center;padding:10px 6px;gap:6px}
.input-row {display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:14px;min-width:0}
.input-row>label {flex:1 1 12rem;min-width:0}
.input-row.numbers>label {flex:1 1 8rem;min-width:0}
.input-row>.choice-list {width:100%}
.field-label {display:block;font-size:var(--body);font-weight:600;margin-bottom:8px}
.text-input {display:block;width:100%;min-width:0;min-height:var(--tap);border:2px solid var(--control);border-radius:var(--radius);padding:12px;background:var(--paper);font-size:var(--label);line-height:1.6}
.text-input::placeholder,.prompt-editor::placeholder {color:var(--muted);opacity:1}
.text-input:disabled {background:var(--info);color:var(--muted);border-style:dashed}
.text-input[aria-invalid="true"] {border-style:dashed;border-width:3px;border-color:var(--ink)}
textarea.text-input {min-height:9rem;resize:vertical;overflow-wrap:anywhere}
.unit {font-size:var(--body);padding-bottom:12px;overflow-wrap:anywhere}
.helper {color:var(--text);font-size:var(--body);line-height:1.75;margin-top:12px;overflow-wrap:anywhere}
.helper:empty {display:none}
.route-label {margin-top:18px}
.field-error {margin-top:12px;border-left:4px solid var(--ink);padding:8px 12px;color:var(--ink);background:var(--info);font-size:var(--body);font-weight:600}
.date-preview {color:var(--accent-dark);margin-top:14px;font-size:var(--body);font-weight:600}
.output-column {position:sticky;top:20px}
.output-panel {border:1px solid var(--line);border-radius:var(--card-radius);padding:24px;background:var(--paper)}
.output-lead {margin-top:12px;font-size:var(--body)}
.output-actions {display:flex;flex-wrap:wrap;gap:12px;margin:18px 0 14px}
.output-actions button {flex:1 1 12rem}
.prompt-editor {display:block;width:100%;min-width:0;min-height:26rem;resize:vertical;padding:16px;border:2px solid var(--control);border-radius:var(--radius);color:var(--text);background:var(--paper);font-size:var(--body);line-height:1.85;overflow-wrap:anywhere;white-space:pre-wrap}
.prompt-meta {display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;color:var(--muted);font-size:var(--note);margin-top:10px}
.paste-guide {margin-top:20px;padding:16px;border-radius:var(--radius);background:var(--info);font-size:var(--body)}
.paste-guide p {margin-top:6px}
.fine-print {color:var(--muted);font-size:var(--note);margin-top:14px}
.notice {margin-block:14px;padding:14px 16px;background:var(--info);color:var(--ink);border:1px solid var(--control);border-left:4px solid var(--accent);border-radius:var(--radius);font-size:var(--body);overflow-wrap:anywhere}
.notice.warning,.notice.error {border-left-color:var(--ink)}
.notice ul {margin:8px 0 0;padding-left:1.3rem}
.notice.error {font-weight:500}
.page-footer {margin-block:32px 20px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:var(--help)}
.footer-brand {display:block;font-size:var(--body);font-weight:600;color:var(--accent-dark);margin-bottom:10px}
.action-bar {position:fixed;z-index:20;inset:auto 0 0;padding:12px 24px calc(8px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--control)}
.action-inner {max-width:1184px;margin:auto;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px}
.action-hint {margin-right:auto;font-size:var(--body);color:var(--text)}
#generate,#copy {min-height:var(--tap);min-width:10rem}
.action-copyright {max-width:1184px;margin:5px auto 0;text-align:right;font-size:var(--note);color:var(--muted);line-height:1.5}
.toast {position:fixed;z-index:50;bottom:calc(var(--action-bar-height) + 12px);left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);max-height:35dvh;overflow:auto;background:var(--ink);color:#fff;padding:14px 18px;border-radius:var(--radius);font-size:var(--body)}
dialog {color:var(--text);background:var(--paper);width:min(34rem,calc(100% - 32px));max-height:85dvh;overflow-y:auto;border:2px solid var(--control);border-radius:var(--card-radius);padding:24px}
dialog::backdrop {background:rgb(31 41 55 / .45)}
dialog h2 {margin-bottom:14px}
dialog h3 {margin:18px 0 8px}
dialog p {font-size:var(--body);overflow-wrap:anywhere}
.dialog-actions {display:flex;justify-content:flex-end;flex-wrap:wrap;gap:12px;margin-top:24px}
.dialog-actions button {flex:1 1 10rem}
.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}
.skip-link {position:absolute;top:-200px;left:12px;background:var(--paper);padding:12px;z-index:100}
.skip-link:focus {top:12px}
@media(max-width:1000px) {.workspace{grid-template-columns:1fr}.output-column{position:static}}
@media(max-width:700px) {.preset-grid{grid-template-columns:1fr}.priority-definitions{grid-template-columns:1fr}.action-hint{display:none}}
@media(max-width:580px) {
 .header-inner{padding:16px;gap:10px 16px}.brand{font-size:1.25rem;gap:8px}.brand-mark{width:36px;height:40px;font-size:1.75rem;border-radius:10px}.brand small{display:none}.version-tools{flex-direction:row;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px}
 .page-shell{padding:0 12px}.display-toolbar{padding-block:16px;gap:12px}.display-toolbar>.text-button{width:100%}.intro{padding:4px 4px 20px}.steps{gap:8px 16px}.mobile-break{display:block}
 #preset-manager>summary{padding:16px}.preset-content{padding:0 12px 16px}.draft-status{padding:12px}#save-status{margin-left:0}.form-caption{padding-inline:4px}.section-card>summary{padding:16px 12px;gap:10px}.section-content{padding:0 14px}.section-title{font-size:1.25rem}.priority-button{min-width:6rem}
 .output-panel{padding:20px 16px}.input-row.numbers{display:grid;grid-template-columns:minmax(0,1fr) auto}[data-condition="time"] .numbers{grid-template-columns:minmax(0,1fr)}[data-condition="time"] .numbers>.unit{display:none}
 .action-bar{padding:10px 12px calc(6px + env(safe-area-inset-bottom))}.action-inner{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:10px}#generate,#copy{min-width:0;width:100%;padding:12px 8px}.prompt-editor{min-height:24rem;padding:12px}
}
@media(prefers-reduced-motion:no-preference) {button,.choice{transition:background-color .12s,border-color .12s}}
@media(forced-colors:active) {.choice:has(input:checked),.priority-button.required{outline:2px solid Highlight}input[type="checkbox"],input[type="radio"]{appearance:auto}}
.field-help {margin-top:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--info)}
.field-help>summary {padding:12px;min-height:48px;cursor:pointer;font-size:var(--body)}
.field-help>.helper {margin:0;padding:0 12px 14px}
.text-size-control label+label {margin-left:6px}
