:root{--color-paper: oklch(97% .018 92);--color-paper-2: oklch(94% .025 92);--color-paper-3: oklch(91% .035 92);--color-ink: oklch(27% .035 165);--color-ink-soft: oklch(48% .035 165);--color-pine: oklch(28% .07 165);--color-pine-light: oklch(91% .045 145);--color-pine-line: oklch(90% .03 165 / .2);--color-accent: oklch(62% .14 42);--color-accent-2: oklch(60% .1 155);--color-accent-soft: oklch(62% .14 42 / .2);--color-accent-2-soft: oklch(60% .1 155 / .22);--color-gold: oklch(65% .12 78);--color-blue: oklch(60% .07 230);--color-blue-soft: oklch(60% .07 230 / .25);--color-rule: oklch(84% .03 92);--color-focus: oklch(52% .12 164);--color-error: oklch(52% .16 28);--color-error-soft: oklch(52% .16 28 / .12);--color-error-line: oklch(52% .16 28 / .35);--color-success: oklch(50% .12 150);--color-on-pine: oklch(97% .018 92);--color-on-accent: oklch(99% .01 92);--color-map: oklch(94% .025 155);--color-backdrop: oklch(28% .07 165 / .48);--color-paper-glass: oklch(97% .018 92 / .9);--font-display: "STKaiti", "KaiTi", "Noto Serif SC", serif;--font-body: "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-data: Georgia, "Times New Roman", serif;--space-2xs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2.5rem;--space-2xl: 4rem;--space-3xl: 6rem;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-micro: .12s;--dur-short: .22s;--dur-long: .42s;--shadow-whisper: 0 1px 2px oklch(20% .01 165 / .05);--shadow-modal: 0 24px 70px oklch(20% .04 165 / .25);--z-base: 1;--z-raised: 10;--z-modal: 400}:root{color:var(--color-ink);background:var(--color-paper);font-family:var(--font-body);font-synthesis:none;--ink: var(--color-ink);--ink-soft: var(--color-ink-soft);--pine: var(--color-pine);--pine-light: var(--color-pine-light);--paper: var(--color-paper);--line: var(--color-rule);--coral: var(--color-accent);--mint: var(--color-accent-2);--gold: var(--color-gold);--blue: var(--color-blue);--shadow: var(--shadow-whisper)}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;background:radial-gradient(circle at 84% 5%,color-mix(in oklch,var(--color-accent) 8%,transparent),transparent 26rem),var(--paper)}body.modal-open{overflow:hidden}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid color-mix(in oklch,var(--color-accent-2) 45%,transparent);outline-offset:2px}.auth-gate{display:grid;min-height:100vh;place-content:center;justify-items:center;gap:18px;padding:24px;color:var(--ink-soft);text-align:center}.auth-gate-mark{display:grid;place-items:center;width:58px;height:58px;border:1px solid var(--pine);border-radius:50%;background:var(--pine);color:var(--color-pine-light);font-family:var(--font-display);font-size:28px}.auth-gate p{margin:0;font-size:14px}.auth-gate-error{color:var(--color-error)}.app-shell{width:min(1240px,calc(100% - 48px));margin:0 auto}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:82px;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--pine);border-radius:50%;background:var(--pine);color:var(--color-pine-light);font-family:var(--font-display);font-size:20px}.brand-mark img,.auth-gate-mark img{display:block;width:100%;height:100%}.brand strong,.brand small{display:block}.brand strong{font-family:var(--font-display);font-size:23px;letter-spacing:.04em}.brand small{margin-top:-1px;color:var(--ink-soft);font-size:10px;letter-spacing:.12em}.topbar-actions,.calendar-actions{display:flex;align-items:center;gap:8px}.session-indicator{color:var(--ink-soft);font-size:12px}.session-active{color:var(--mint)}.button,.icon-button{border:1px solid transparent;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}.button{min-height:39px;padding:0 14px;font-size:13px;font-weight:700}.button:hover,.icon-button:hover{transform:translateY(-1px)}.button-primary{background:var(--pine);color:var(--color-on-accent)}.button-primary:hover{background:var(--color-pine)}.button-quiet{border-color:var(--line);background:transparent;color:var(--ink-soft)}.button-quiet:hover{border-color:var(--pine);color:var(--pine);background:var(--color-paper-2)}.icon-button{display:grid;place-items:center;width:36px;height:36px;padding:0;border-color:var(--line);background:transparent;font-size:18px;line-height:1}.icon-button:hover{border-color:var(--pine);background:var(--pine-light)}.icon-button.danger:hover{border-color:var(--color-error-line);background:var(--color-error-soft);color:var(--color-error)}.hero-strip{display:flex;align-items:end;justify-content:space-between;gap:32px;padding:64px 0 58px}.eyebrow{margin:0 0 12px;color:var(--mint);font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--font-display);font-weight:600;letter-spacing:-.035em}h1{max-width:700px;margin-bottom:17px;color:var(--pine);font-size:clamp(44px,6vw,76px);line-height:1.05;text-wrap:balance}h1 em{color:var(--coral);font-style:normal;white-space:nowrap}.hero-copy{max-width:470px;margin-bottom:0;color:var(--ink-soft);font-size:15px;line-height:1.9}.today-stamp{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;align-items:end;column-gap:9px;min-width:155px;padding:15px 0 9px 18px;border-left:1px solid var(--coral);color:var(--pine)}.today-stamp span{grid-column:1 / -1;color:var(--coral);font-size:12px;font-weight:700;letter-spacing:.12em}.today-stamp strong{font-family:var(--font-data);font-size:55px;font-weight:500;line-height:.95}.today-stamp small{padding-bottom:5px;color:var(--ink-soft);font-size:12px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,.8fr);gap:18px}.lower-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(290px,.8fr);gap:18px;margin-top:18px}.panel{border:1px solid var(--line);background:var(--color-paper-glass);box-shadow:var(--shadow)}.calendar-panel,.markets-section,.reminder-section{padding:28px}.calendar-heading,.section-heading{align-items:end}.panel-heading{display:flex;align-items:start;justify-content:space-between;gap:16px}.panel-heading .eyebrow{margin-bottom:6px}h2{margin-bottom:0;color:var(--pine);font-size:29px;line-height:1.1}.calendar-actions{padding-bottom:1px}.calendar-actions .button{min-height:34px;padding:0 10px}.calendar-actions .icon-button{width:34px;height:34px}.calendar{margin-top:27px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-weekdays{border-bottom:1px solid var(--line)}.calendar-weekdays span{padding-bottom:10px;color:var(--ink-soft);font-size:11px;text-align:center}.calendar-grid{gap:6px;padding-top:8px}.calendar-cell{position:relative;display:flex;min-height:82px;flex-direction:column;align-items:flex-start;padding:9px;border:1px solid transparent;background:transparent;text-align:left}button.calendar-cell{cursor:pointer}button.calendar-cell:hover{border-color:var(--mint);background:var(--color-pine-light)}.calendar-cell-empty{pointer-events:none}.calendar-cell-today{border-color:var(--coral)}.calendar-cell-selected{box-shadow:inset 0 0 0 2px var(--color-accent-2)}.calendar-cell-rest{background:var(--color-paper-2)}.calendar-cell-market{background:var(--color-pine-light)}.calendar-cell-rest.calendar-cell-market{background:var(--color-accent-soft)}.day-number{color:var(--ink);font-family:var(--font-data);font-size:20px;line-height:1}.calendar-cell-today .day-number{display:grid;place-items:center;width:27px;height:27px;margin:-3px 0 2px -3px;border-radius:50%;background:var(--coral);color:#fff;font-size:15px}.day-rest-label{position:absolute;top:10px;right:9px;color:var(--coral);font-size:10px}.day-markets{display:grid;gap:3px;width:100%;margin-top:auto}.day-market,.day-more{display:block;max-width:100%;overflow:hidden;color:var(--mint);font-size:10px;font-weight:700;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.day-market:before{content:"·";margin-right:3px}.day-more{color:var(--ink-soft);font-weight:500}.color-coral{--marker: var(--coral)}.color-mint{--marker: var(--mint)}.color-gold{--marker: var(--gold)}.color-blue{--marker: var(--blue)}.day-market.color-coral,.day-market.color-mint,.day-market.color-gold,.day-market.color-blue{color:var(--marker)}.calendar-legend{display:flex;flex-wrap:wrap;gap:18px;margin-top:22px;color:var(--ink-soft);font-size:11px}.legend-dot{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:var(--line)}.legend-market{background:var(--mint)}.legend-rest{background:var(--coral)}.legend-today{background:var(--pine)}.side-column{display:grid;gap:18px}.today-card,.monthly-card{padding:26px}.today-card{min-height:295px;background:var(--pine);color:var(--color-on-pine)}.today-card h2{color:var(--color-on-pine);font-size:30px}.today-card-top{display:flex;justify-content:space-between}.weather-mark,.month-glyph{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--color-pine-line);border-radius:50%;color:var(--color-pine-light);font-family:var(--font-display);font-size:21px}.today-status{margin:27px 0 17px;color:var(--color-pine-light);font-size:14px;line-height:1.7}.today-market-list{display:grid;gap:10px}.today-market{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--color-pine-line)}.today-market strong,.today-market small{display:block}.today-market strong{font-size:14px}.today-market small{margin-top:3px;color:var(--color-pine-light);font-size:11px}.market-swatch{display:block;flex:0 0 auto;width:10px;height:10px;border-radius:50%;background:var(--marker)}.market-swatch.large{width:13px;height:13px;margin-top:3px}.text-link{padding:0;border:0;background:transparent;color:var(--coral);cursor:pointer;font-size:12px;font-weight:700}.tag-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:24px}.tag{display:inline-flex;padding:5px 8px;background:color-mix(in oklch,var(--color-on-pine) 10%,transparent);color:var(--color-pine-light);font-size:10px}.monthly-card .month-glyph{border-color:var(--line);color:var(--coral)}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:28px}.stat-grid div{padding-right:8px;border-right:1px solid var(--line)}.stat-grid div:last-child{border-right:0}.stat-grid strong,.stat-grid span{display:block}.stat-grid strong{color:var(--coral);font-family:var(--font-data);font-size:29px;font-weight:500}.stat-grid span{margin-top:4px;color:var(--ink-soft);font-size:10px}.muted-copy{margin-bottom:0;color:var(--ink-soft);font-size:12px;line-height:1.7}.monthly-card .muted-copy{margin-top:18px}.markets-section,.reminder-section{min-height:257px}.market-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:25px}.market-item{display:flex;align-items:flex-start;min-width:0;gap:11px;padding:15px;border:1px solid var(--line);background:var(--color-paper-2)}.market-info{min-width:0;flex:1}.market-info strong,.market-info span,.market-info small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.market-info strong{color:var(--pine);font-size:14px}.market-info span{margin-top:5px;color:var(--ink-soft);font-size:11px}.market-info small{margin-top:11px;color:var(--coral);font-size:10px}.market-item-actions{display:flex;gap:3px;margin:-6px -6px 0 0}.market-item-actions .icon-button{width:28px;height:28px;border-color:transparent;font-size:14px}.empty-state{display:grid;gap:7px;padding:24px 0 5px}.empty-state strong{color:var(--pine)}.empty-state span{color:var(--ink-soft);font-size:12px}.reminder-preview{margin-top:25px}.reminder-empty,.reminder-envelope{display:flex;align-items:center;gap:12px}.mail-mark{display:grid;place-items:center;flex:0 0 auto;width:35px;height:35px;border:1px solid var(--color-accent);color:var(--coral);font-family:var(--font-display);font-size:18px}.reminder-empty strong,.reminder-envelope strong{display:block;color:var(--pine);font-size:14px}.reminder-empty p{max-width:300px;margin:5px 0 0;color:var(--ink-soft);font-size:12px;line-height:1.6}.reminder-ready{display:grid;gap:16px}.reminder-envelope small{display:block;margin-top:4px;color:var(--ink-soft);font-size:11px}.preview-dates{display:grid;gap:7px}.preview-dates div{display:flex;align-items:baseline;gap:10px;padding:9px 0;border-top:1px solid var(--line)}.preview-dates strong{min-width:37px;color:var(--coral);font-family:var(--font-data);font-size:18px;font-weight:500}.preview-dates span{overflow:hidden;color:var(--ink-soft);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.footer{display:flex;justify-content:space-between;gap:20px;padding:30px 0 38px;color:var(--color-ink-soft);font-size:10px;letter-spacing:.04em}.modal-backdrop{position:fixed;z-index:10;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:var(--color-backdrop)}.modal-backdrop[hidden]{display:none}.modal{width:min(560px,100%);max-height:min(760px,calc(100vh - 40px));overflow:auto;padding:29px;border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow-modal)}.modal-heading{display:flex;justify-content:space-between;gap:16px;margin-bottom:26px}.modal-heading h2{font-size:32px}.form{display:grid;gap:18px}.form label{display:grid;gap:7px;color:var(--ink);font-size:12px;font-weight:700}.form input,.form select{width:100%;min-height:42px;padding:0 11px;border:1px solid var(--line);border-radius:0;background:var(--color-paper);color:var(--ink);font-size:13px}.location-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.location-input-row .button{min-height:42px;white-space:nowrap}.market-picker-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.market-picker-actions .button{flex:0 0 auto;min-height:32px;padding:0 10px;font-size:11px}.location-status{color:var(--ink-soft);font-size:11px;font-weight:400;line-height:1.5}.location-status-selected{color:var(--mint)}.location-status-error{color:var(--color-error)}.location-results{display:grid;gap:5px;max-height:220px;overflow:auto;padding:5px;border:1px solid var(--line);background:var(--color-paper-2)}.location-results[hidden]{display:none}.location-result{display:grid;gap:4px;padding:10px;border:1px solid transparent;background:transparent;color:var(--ink);cursor:pointer;text-align:left}.location-result:hover,.location-result:focus-visible{border-color:var(--mint);background:var(--color-pine-light)}.location-result strong{color:var(--pine);font-size:12px;font-weight:700;line-height:1.5}.location-result small{color:var(--ink-soft);font-size:10px;font-weight:400}.market-picker-map{min-height:240px;overflow:hidden;border:1px solid var(--line);background:var(--color-map)}.label-hint{color:var(--ink-soft);font-size:11px;font-weight:400;line-height:1.5}.form-section{display:grid;gap:12px;padding-bottom:20px;border-bottom:1px solid var(--line)}.form-section h3{margin-bottom:-3px;color:var(--pine);font-size:15px}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.choice{display:flex!important;grid-template-columns:none!important;align-items:start;gap:7px;min-height:68px;padding:10px;border:1px solid var(--line);background:var(--color-paper);font-weight:400!important}.choice:has(input:checked){border-color:var(--mint);background:var(--pine-light)}.choice input{width:auto;min-height:auto;margin-top:3px}.choice strong,.choice small{display:block}.choice strong{font-size:12px}.choice small{margin-top:5px;color:var(--ink-soft);font-size:10px;font-weight:400;line-height:1.4}.holiday-list{display:grid;gap:7px}.holiday-item{display:flex;align-items:center;gap:8px;min-height:32px;padding:0 9px;background:var(--color-paper-2)}.holiday-item span{color:var(--coral);font-family:var(--font-data);font-size:12px}.holiday-item strong{flex:1;font-size:11px}.check-list{display:grid;gap:10px}.check-list label{display:flex;grid-template-columns:none;align-items:start;gap:7px;font-size:12px;font-weight:400;line-height:1.5}.check-list input{width:auto;min-height:auto;margin-top:3px}.email-note{margin:-2px 0 0;color:var(--ink-soft);font-size:11px;line-height:1.6}.form-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:2px}@media (max-width: 900px){.dashboard-grid,.lower-grid{grid-template-columns:1fr}.side-column{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 650px){.app-shell{width:min(100% - 28px,560px)}.topbar{min-height:68px}.session-indicator{display:none}.hero-strip{align-items:start;padding:42px 0 38px}.today-stamp{min-width:88px;padding-left:12px}.today-stamp strong{font-size:42px}.today-stamp small{display:none}.calendar-panel,.markets-section,.reminder-section,.today-card,.monthly-card{padding:20px}.calendar-heading{align-items:start;flex-direction:column}.calendar-actions{width:100%}.calendar-actions .button{margin-right:auto}.calendar-cell{min-height:64px;padding:6px}.day-number{font-size:16px}.day-rest-label{top:7px;right:6px;font-size:9px}.day-market{font-size:9px}.market-list,.side-column{grid-template-columns:1fr}.section-heading{align-items:start;flex-direction:column}.footer{flex-direction:column;padding-bottom:26px}.choice-grid{grid-template-columns:1fr}.choice{min-height:auto}}.sql-module-heading{align-items:center}.sql-hero-mark{display:grid;grid-template-columns:auto auto auto;align-items:center;gap:12px;min-width:164px;padding:16px 0 12px 18px;border-left:1px solid var(--color-accent);color:var(--color-accent);font-family:var(--font-data);font-size:13px;letter-spacing:.08em}.sql-hero-mark strong{color:var(--color-pine);font-size:24px;font-weight:400}.sql-tool-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:18px}.sql-input-panel,.sql-schema-panel,.sql-fields-panel,.sql-output-panel{padding:28px}.sql-input-panel{min-height:470px}.sql-schema-panel{min-height:470px;background:var(--color-pine);color:var(--color-on-pine)}.sql-schema-panel h2,.sql-schema-panel .eyebrow{color:var(--color-on-pine)}.sql-schema-panel .eyebrow{color:var(--color-pine-light)}.sql-schema-stamp{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--color-pine-light);border-radius:50%;color:var(--color-pine-light);font-family:var(--font-data)}.sql-step-mark{padding-bottom:3px;color:var(--color-accent);font-family:var(--font-data);font-size:11px;letter-spacing:.08em}.sql-ddl-input,.sql-output{display:block;width:100%;margin-top:22px;padding:16px;border:1px solid var(--color-rule);border-radius:0;background:color-mix(in oklch,var(--color-paper-2) 70%,white);color:var(--color-ink);font-family:Cascadia Code,Consolas,monospace;font-size:12px;line-height:1.7;resize:vertical;-moz-tab-size:4;tab-size:4}.sql-ddl-input{min-height:320px}.sql-output{min-height:560px;background:var(--color-ink);color:var(--color-pine-light)}.sql-ddl-input:focus-visible,.sql-output:focus-visible{outline:3px solid color-mix(in oklch,var(--color-accent-2) 45%,transparent);outline-offset:2px}.sql-panel-actions,.sql-output-actions,.sql-generate-row{display:flex;align-items:center;justify-content:flex-end;gap:8px}.sql-panel-actions{margin-top:14px}.sql-status,.sql-output-status{min-height:19px;margin:12px 0 0;color:var(--color-ink-soft);font-size:11px;line-height:1.6}.sql-status-success{color:var(--color-success)}.sql-status-error{color:var(--color-error)}.sql-table-name{margin:28px 0 5px;color:var(--color-accent);font-family:Cascadia Code,Consolas,monospace;font-size:14px;overflow-wrap:anywhere}.sql-column-count{margin-bottom:18px;color:var(--color-pine-light);font-size:11px}.sql-column-list{display:grid;gap:0;max-height:325px;overflow:auto;border-top:1px solid var(--color-pine-line)}.sql-column-item{display:grid;grid-template-columns:28px minmax(0,.7fr) minmax(0,1fr);gap:8px;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--color-pine-line)}.sql-column-item span{color:var(--color-accent);font-family:var(--font-data);font-size:12px}.sql-column-item strong{overflow:hidden;color:var(--color-on-pine);font-family:Cascadia Code,Consolas,monospace;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.sql-column-item small{overflow:hidden;color:var(--color-pine-light);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.sql-fields-panel,.sql-output-panel{margin-top:18px}.sql-field-list{display:grid;gap:10px;margin-top:24px}.sql-field-row{display:grid;grid-template-columns:44px minmax(0,1fr);gap:15px;padding:17px 0;border-top:1px solid var(--color-rule)}.sql-field-index{padding-top:3px;color:var(--color-accent);font-family:var(--font-data);font-size:18px}.sql-field-main{min-width:0}.sql-field-row-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.sql-field-row-heading strong{color:var(--color-pine);font-size:14px}.sql-field-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.sql-field-grid label{display:grid;gap:7px;color:var(--color-ink);font-size:11px;font-weight:700}.sql-field-grid input,.sql-field-grid select{width:100%;min-height:40px;padding:0 9px;border:1px solid var(--color-rule);border-radius:0;background:var(--color-paper);color:var(--color-ink);font-size:12px}.sql-field-grid input:focus-visible,.sql-field-grid select:focus-visible{outline:3px solid color-mix(in oklch,var(--color-accent-2) 45%,transparent);outline-offset:2px}.sql-field-description{grid-column:1 / -1}.sql-field-note{margin:11px 0 0;color:var(--color-ink-soft);font-size:10px;line-height:1.6}.sql-empty-fields{display:grid;gap:6px;padding:22px 0 10px;color:var(--color-ink-soft)}.sql-empty-fields strong{color:var(--color-pine);font-size:13px}.sql-empty-fields span{font-size:11px}.sql-safety-note{display:grid;gap:5px;margin-top:18px;padding:13px 15px;border-left:2px solid var(--color-accent);background:var(--color-paper-2)}.sql-safety-note strong{color:var(--color-pine);font-size:12px}.sql-safety-note span{color:var(--color-ink-soft);font-size:11px;line-height:1.7}.sql-generate-row{justify-content:space-between;gap:16px;margin-top:22px;padding-top:18px;border-top:1px solid var(--color-rule)}.sql-generate-row>span{color:var(--color-ink-soft);font-size:11px;line-height:1.6}.sql-output-status{color:var(--color-success)}@media (max-width: 900px){.sql-tool-layout{grid-template-columns:1fr}.sql-input-panel,.sql-schema-panel{min-height:auto}.sql-column-list{max-height:270px}}@media (max-width: 650px){.sql-input-panel,.sql-schema-panel,.sql-fields-panel,.sql-output-panel{padding:20px}.sql-module-heading{align-items:start}.sql-hero-mark{min-width:0}.sql-field-row{grid-template-columns:30px minmax(0,1fr);gap:10px}.sql-field-grid{grid-template-columns:1fr}.sql-field-description{grid-column:auto}.sql-generate-row{align-items:stretch;flex-direction:column}.sql-generate-row .button{width:100%}.sql-output-actions{flex-wrap:wrap;justify-content:flex-start}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}html,body{overflow-x:clip}[hidden]{display:none!important}.app-shell{width:min(1240px,calc(100% - 48px))}.topbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;min-height:108px;align-items:center;gap:var(--space-md);border-bottom:3px double var(--color-rule)}.brand{min-width:0}.module-nav{display:flex;align-items:center;align-self:stretch;justify-content:center;gap:var(--space-lg)}.module-link{position:relative;min-height:44px;padding:0;border:0;background:transparent;color:var(--color-ink-soft);cursor:pointer;font-size:12px;font-weight:700;white-space:nowrap}.module-link:after{position:absolute;right:0;bottom:12px;left:0;height:2px;background:var(--color-accent);content:"";opacity:0;transform:scaleX(0);transform-origin:center;transition:transform var(--dur-short) var(--ease-out),opacity var(--dur-short) var(--ease-out)}.module-link:hover,.module-link.is-active{color:var(--color-pine)}.module-link.is-active:after{opacity:1;transform:scaleX(1)}.module-link:disabled{color:var(--color-ink-soft);cursor:not-allowed;opacity:.5}.module-link:disabled:after{display:none}.module-link-soon small{margin-left:4px;color:var(--color-accent);font-size:9px;font-weight:500}.series-home-link{display:inline-flex;align-items:center;gap:4px;color:var(--color-accent);font-size:12px;font-weight:700;text-decoration:none;white-space:nowrap}.series-home-link:hover{color:var(--color-accent-2);text-decoration:underline}.topbar-actions{justify-content:flex-end}.button,.icon-button,.module-link,.module-card{transition:background-color var(--dur-short) var(--ease-out),border-color var(--dur-short) var(--ease-out),color var(--dur-short) var(--ease-out),opacity var(--dur-short) var(--ease-out),transform var(--dur-short) var(--ease-out)}.button:active,.icon-button:active,.module-card:active{transform:translateY(1px)}.button:disabled,.icon-button:disabled{cursor:not-allowed;opacity:.5}.module-home{display:grid;grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);gap:clamp(var(--space-2xl),9vw,var(--space-4xl));min-height:610px;align-items:center;padding:var(--space-3xl) 0}.module-intro{align-self:start;padding-top:var(--space-xl)}.module-intro h1{max-width:600px}.module-intro h1 em,.module-page-heading h1 em{color:var(--color-accent);font-style:normal}.module-index{display:grid;gap:0;border-top:1px solid var(--color-rule)}.module-card{display:grid;grid-template-columns:44px minmax(0,1fr) 28px;gap:var(--space-md);width:100%;padding:var(--space-lg) 0;border:0;border-bottom:1px solid var(--color-rule);background:transparent;text-align:left}button.module-card{cursor:pointer}button.module-card:hover{background:var(--color-paper-2);transform:translate(4px)}.module-card-index{color:var(--color-accent);font-family:var(--font-data);font-size:18px}.module-card-copy{display:grid;gap:7px;min-width:0}.module-card-copy small{color:var(--color-accent-2);font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.module-card-copy strong{color:var(--color-pine);font-family:var(--font-display);font-size:clamp(22px,3vw,30px);font-weight:600}.module-card-copy span{max-width:43ch;color:var(--color-ink-soft);font-size:13px;line-height:1.75}.module-card-arrow{align-self:center;color:var(--color-accent);font-family:var(--font-data);font-size:22px}.module-card-disabled{opacity:.55}.module-page-heading{display:flex;align-items:end;justify-content:space-between;gap:var(--space-xl);padding:var(--space-2xl) 0 var(--space-xl)}.module-page-heading h1{margin-bottom:17px;max-width:none;font-size:clamp(30px,4.2vw,46px);white-space:nowrap}.module-page-heading .hero-copy{margin-bottom:0}.calendar-lower-grid{align-items:start}.section-note{margin:var(--space-md) 0 0;color:var(--color-ink-soft);font-size:11px;line-height:1.6}.today-card{min-height:280px;background:var(--color-pine);color:var(--color-on-pine)}.today-card .eyebrow{color:var(--color-pine-light)}.today-card h2{color:var(--color-on-pine)}.today-glyph{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--color-pine-light);border-radius:50%;color:var(--color-pine-light);font-family:var(--font-display);font-size:18px}.today-market{border-color:var(--color-pine-line)}.today-market strong{color:var(--color-on-pine)}.today-status{color:var(--color-pine-light)}.today-status.positive{color:var(--color-on-pine)}.today-card .text-link{color:var(--color-accent)}.tag{color:var(--color-pine-light)}.tag-rest{background:var(--color-accent-soft);color:var(--color-on-pine)}.tag-workday{background:var(--color-blue-soft);color:var(--color-on-pine)}.tag-market{background:var(--color-accent-2-soft);color:var(--color-on-pine)}.monthly-card{min-height:203px}.market-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md);margin-top:var(--space-lg)}.market-item{display:grid;grid-template-columns:minmax(0,1fr);gap:0;padding:0;border-color:var(--color-rule);background:var(--color-paper-2)}.market-map-frame{min-width:0;aspect-ratio:1.45;background:var(--color-map)}.market-map{display:block;width:100%;height:100%;min-height:100%;border:0}.map-placeholder{display:grid;height:100%;align-content:center;justify-items:center;gap:6px;padding:var(--space-md);color:var(--color-ink-soft);text-align:center}.map-placeholder strong{color:var(--color-pine);font-size:12px}.map-placeholder span{font-size:10px}.map-skeleton{width:34px;height:34px;border:1px solid var(--color-accent-2);border-radius:50%;opacity:.65}.map-error strong{color:var(--color-error)}.map-placeholder a,.map-caption a{color:var(--color-accent);font-size:11px;font-weight:700}.map-caption{display:flex;justify-content:space-between;gap:var(--space-sm);padding:9px 11px 10px;border-top:1px solid var(--color-rule);color:var(--color-ink-soft);font-size:10px}.map-caption span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.market-item-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:var(--space-sm) var(--space-md) var(--space-md)}.market-item-meta>div:first-child{display:flex;align-items:center;min-width:0;gap:8px;grid-column:1 / -1}.market-item-meta strong{overflow:hidden;color:var(--color-pine);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.market-address{min-height:18px;margin:0;overflow:hidden;color:var(--color-ink-soft);font-size:11px;line-height:1.6;text-overflow:ellipsis;white-space:nowrap}.market-item-meta small{color:var(--color-accent);font-size:10px}.market-item-actions{display:flex;gap:3px;justify-content:flex-end;margin:-7px -6px -6px 0}.market-item-actions .icon-button{width:32px;height:32px;border-color:transparent;font-size:14px}.market-item-actions .market-detail-button,.market-item-actions [data-edit-market]{width:auto;padding:0 7px;font-size:11px}.reminder-section{min-height:257px}.holiday-status{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);min-height:28px;color:var(--color-accent-2);font-size:11px;line-height:1.5}.status-error{color:var(--color-error)}.holiday-list{gap:5px}.holiday-list-title{margin-bottom:2px;color:var(--color-ink-soft);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.holiday-item{background:var(--color-paper-2)}.holiday-item span{color:var(--color-accent)}.holiday-workdays{display:grid;gap:4px;margin-top:var(--space-sm);padding:9px;border-left:2px solid var(--color-blue);background:var(--color-paper-2);color:var(--color-ink-soft);font-size:10px}.holiday-workdays span{color:var(--color-blue);font-weight:800}.holiday-workdays strong{font-weight:500}.footer{border-top:1px solid var(--color-rule)}.modal-backdrop{z-index:var(--z-modal)}.form input,.form select{outline:2px solid transparent;outline-offset:1px}.form input:hover,.form select:hover{background:var(--color-paper-2)}.form input:focus-visible,.form select:focus-visible{outline-color:var(--color-focus)}@media (max-width: 900px){.topbar{grid-template-columns:auto auto}.module-nav{grid-column:1 / -1;grid-row:2;justify-content:flex-start;overflow-x:auto}.module-home{grid-template-columns:1fr;min-height:auto;gap:var(--space-xl);padding:var(--space-2xl) 0}.module-intro{padding-top:0}.module-index{max-width:720px}}@media (max-width: 650px){.app-shell{width:min(calc(100% - 28px),560px)}.topbar{min-height:118px;gap:var(--space-sm)}.topbar-actions{gap:4px}.session-indicator{display:none}.module-nav{gap:var(--space-md)}.module-link{font-size:11px}.module-home{padding:var(--space-xl) 0 var(--space-2xl)}.module-intro h1{font-size:clamp(32px,10vw,48px);overflow-wrap:normal}.module-page-heading h1{font-size:clamp(18px,5.6vw,30px);white-space:nowrap}.module-page-heading{align-items:start;flex-direction:column;gap:var(--space-lg);padding:var(--space-xl) 0}.today-stamp{min-width:120px}.today-stamp strong{font-size:42px}.today-stamp small{display:block}.calendar-panel,.markets-section,.reminder-section,.today-card,.monthly-card{padding:20px}.calendar-heading,.section-heading{align-items:start;flex-direction:column}.calendar-actions{width:100%}.calendar-actions .button{margin-right:auto}.calendar-cell{min-height:64px;padding:6px}.day-number{font-size:16px}.day-rest-label,.day-work-label{top:7px;right:6px;font-size:9px}.day-market{font-size:9px}.market-list,.side-column{grid-template-columns:1fr}.section-heading .button{min-height:44px}.footer{flex-direction:column;padding-bottom:26px}.choice-grid{grid-template-columns:1fr}.choice{min-height:auto}}.media-module-heading{align-items:center}.media-hero-mark{display:grid;grid-template-columns:auto auto auto;align-items:center;gap:12px;min-width:164px;padding:16px 0 12px 18px;border-left:1px solid var(--color-accent);color:var(--color-accent);font-family:var(--font-display);font-size:20px;letter-spacing:.08em}.media-hero-mark strong{color:var(--color-pine);font-size:24px;font-weight:400}.media-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;max-width:980px}.media-input-panel,.media-result-panel{padding:28px}.media-input-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px}.media-link-input{flex:1;min-width:220px;min-height:44px;padding:0 12px;border:1px solid var(--color-rule);border-radius:0;background:var(--color-paper);color:var(--color-ink);font-size:13px}.media-link-input:focus-visible{outline:3px solid color-mix(in oklch,var(--color-accent-2) 45%,transparent);outline-offset:2px}.media-status{min-height:20px;margin:12px 0 0;color:var(--color-ink-soft);font-size:11px;line-height:1.6}.media-status-success{color:var(--color-success)}.media-status-error{color:var(--color-error)}.media-result-actions{display:flex;align-items:center;gap:10px}.media-platform{padding:3px 8px;border:1px solid var(--color-accent-soft);color:var(--color-accent);font-family:var(--font-data);font-size:11px;letter-spacing:.08em}.media-source-title{margin:14px 0 0;color:var(--color-pine);font-family:var(--font-display);font-size:16px;line-height:1.6}.media-note{margin:8px 0 0;color:var(--color-ink-soft);font-size:11px;line-height:1.6}.media-video-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:12px 14px;border-left:2px solid var(--color-accent-2);background:var(--color-paper-2)}.media-video-row span{color:var(--color-ink-soft);font-size:11px}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin-top:18px}.media-card{margin:0;overflow:hidden;border:1px solid var(--color-rule);background:var(--color-paper-2);cursor:pointer}.media-card:hover{border-color:var(--color-accent-2)}.media-card img{display:block;width:100%;aspect-ratio:1;object-fit:cover;background:var(--color-paper-3)}.media-card img.media-thumb-failed{object-fit:contain;background:var(--color-paper-3)}.media-card figcaption{padding:8px 10px;overflow:hidden;color:var(--color-ink-soft);font-size:10px;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 650px){.media-module-heading{align-items:start}.media-hero-mark{min-width:0}.media-input-panel,.media-result-panel{padding:20px}.media-input-row{flex-direction:column;align-items:stretch}.media-input-row input[type=search],.media-input-row .button{width:100%}.media-result-actions{flex-wrap:wrap}.media-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}}.recruitment-module-heading{align-items:center}.recruitment-hero-mark{display:grid;grid-template-columns:auto auto;align-items:center;gap:12px;min-width:150px;padding:16px 0 12px 18px;border-left:1px solid var(--color-accent);color:var(--color-accent);font-family:var(--font-display);font-size:22px;letter-spacing:.08em}.recruitment-hero-mark strong{color:var(--color-pine);font-size:28px;font-weight:400}.recruitment-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;max-width:1080px}.recruitment-toolbar-panel,.recruitment-list-panel{padding:28px}.recruitment-toolbar-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px}.recruitment-toolbar-row input[type=search]{flex:1;min-width:220px;min-height:44px;padding:0 12px;border:1px solid var(--color-rule);border-radius:0;background:var(--color-paper);color:var(--color-ink);font-size:13px}.recruitment-toolbar-row input[type=search]:focus-visible,.recruitment-toolbar-row select:focus-visible{outline:3px solid color-mix(in oklch,var(--color-accent-2) 45%,transparent);outline-offset:2px}.recruitment-toolbar-row select{min-height:44px;padding:0 10px;border:1px solid var(--color-rule);border-radius:0;background:var(--color-paper);color:var(--color-ink);font-size:13px}.recruitment-last-run{color:var(--color-ink-soft);font-size:11px;line-height:1.5;text-align:right}.recruitment-count{color:var(--color-accent);font-family:var(--font-data);font-size:12px}.recruitment-status{min-height:20px;margin:12px 0 0;color:var(--color-ink-soft);font-size:11px;line-height:1.6}.recruitment-status-success{color:var(--color-success)}.recruitment-status-error{color:var(--color-error)}.recruitment-table-wrap{margin-top:16px;overflow-x:auto;border:1px solid var(--color-rule)}.recruitment-table{width:100%;border-collapse:collapse;background:var(--color-paper);font-size:12px}.recruitment-table th{padding:10px 12px;border-bottom:1px solid var(--color-rule);background:var(--color-paper-2);color:var(--color-pine);font-size:11px;font-weight:800;letter-spacing:.06em;text-align:left}.recruitment-table td{padding:11px 12px;border-bottom:1px solid var(--color-rule);color:var(--color-ink);vertical-align:top;line-height:1.6}.recruitment-table tr:last-child td{border-bottom:0}.recruitment-table tbody tr:hover td{background:var(--color-paper-2)}.recruitment-col-title{min-width:300px}.recruitment-col-date{width:100px;white-space:nowrap}.recruitment-col-attachments{min-width:240px}.recruitment-col-link{width:90px}.recruitment-title-cell{color:var(--color-pine);font-weight:700}.recruitment-date-cell{color:var(--color-ink-soft);font-family:var(--font-data);white-space:nowrap}.recruitment-attachment-link{color:var(--color-accent);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.recruitment-attachment-link:hover{color:var(--color-pine)}.recruitment-link-cell a{color:var(--color-accent-2);white-space:nowrap}.recruitment-link-cell a:hover{color:var(--color-pine)}.recruitment-empty{margin:18px 0 0;color:var(--color-ink-soft);font-size:12px}@media (max-width: 650px){.recruitment-module-heading{align-items:start}.recruitment-hero-mark{min-width:0}.recruitment-toolbar-panel,.recruitment-list-panel{padding:20px}.recruitment-toolbar-row{flex-direction:column;align-items:stretch}.recruitment-toolbar-row input[type=search],.recruitment-toolbar-row select,.recruitment-toolbar-row .button{width:100%}.recruitment-last-run{text-align:left}.recruitment-table-wrap{margin-top:14px;overflow-x:visible;border:0}.recruitment-table,.recruitment-table tbody,.recruitment-table tr,.recruitment-table td{display:block;width:100%}.recruitment-table thead{display:none}.recruitment-table tbody tr{margin-bottom:12px;padding:14px;border:1px solid var(--color-rule);background:var(--color-paper)}.recruitment-table tbody tr:last-child{margin-bottom:0}.recruitment-table tbody tr:hover td{background:transparent}.recruitment-table td{padding:5px 0;border-bottom:0}.recruitment-table td+td{margin-top:10px}.recruitment-table td:before{display:block;margin-bottom:3px;color:var(--color-ink-soft);content:attr(data-label);font-size:10px;font-weight:800;letter-spacing:.12em}.recruitment-title-cell{color:var(--color-pine);font-size:13px;font-weight:700;line-height:1.6}.recruitment-title-cell:before{display:none}.recruitment-attachment-cell a{display:inline-block;margin:2px 6px 2px 0}}.codex-watch-module-heading{align-items:center}.codex-watch-hero-mark{display:grid;grid-template-columns:auto auto;align-items:center;gap:10px;min-width:172px;padding:16px 0 12px 18px;border-left:1px solid var(--color-accent);color:var(--color-accent);font-family:var(--font-data);font-size:12px;font-weight:700;letter-spacing:.12em}.codex-watch-hero-mark strong{color:var(--color-pine);font-family:var(--font-display);font-size:38px;font-weight:400;line-height:1}.codex-watch-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr);gap:18px;max-width:1080px;align-items:stretch}.codex-watch-settings,.codex-watch-source,.codex-watch-events{padding:28px}.codex-watch-form{margin-top:18px}.codex-watch-form>label:first-child{display:grid;gap:7px;color:var(--color-pine);font-size:12px;font-weight:700}.codex-watch-form input[type=email]{min-height:44px;padding:0 12px;border:1px solid var(--color-rule);border-radius:0;background:var(--color-paper);color:var(--color-ink);font-size:13px}.codex-watch-form input[type=email]:focus-visible{outline:3px solid color-mix(in oklch,var(--color-accent-2) 45%,transparent);outline-offset:2px}.codex-watch-switch{display:flex;align-items:flex-start;gap:10px;margin-top:18px;padding:13px 14px;border-left:2px solid var(--color-accent-2);background:var(--color-paper-2);color:var(--color-pine);cursor:pointer}.codex-watch-switch input{width:16px;height:16px;margin:2px 0 0;accent-color:var(--color-accent-2)}.codex-watch-switch span{display:grid;gap:3px}.codex-watch-switch strong{font-size:12px}.codex-watch-switch small{color:var(--color-ink-soft);font-size:10px;font-weight:400;line-height:1.5}.codex-watch-form .email-note{margin:13px 0 0}.codex-watch-form .form-actions{margin-top:20px}.codex-watch-status{min-height:20px;margin:14px 0 0;color:var(--color-ink-soft);font-size:11px;line-height:1.6}.codex-watch-status-success{color:var(--color-success)}.codex-watch-status-error{color:var(--color-error)}.codex-watch-config-badge{padding:4px 7px;border:1px solid var(--color-error-line);color:var(--color-error);font-size:10px;font-weight:700;line-height:1.4}.codex-watch-config-badge.is-ready{border-color:var(--color-accent-2-soft);color:var(--color-success)}.codex-watch-source{background:var(--color-paper-2)}.codex-watch-source-mark{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--color-accent-2);border-radius:50%;color:var(--color-accent-2);font-family:var(--font-data);font-size:16px}.codex-watch-facts{display:grid;gap:0;margin:18px 0 0;border-top:1px solid var(--color-rule)}.codex-watch-facts>div{display:grid;grid-template-columns:78px minmax(0,1fr);gap:10px;padding:11px 0;border-bottom:1px solid var(--color-rule)}.codex-watch-facts dt{color:var(--color-ink-soft);font-size:10px;font-weight:800;letter-spacing:.09em}.codex-watch-facts dd{margin:0;color:var(--color-pine);font-size:11px;line-height:1.65}.codex-watch-facts a{color:var(--color-accent);text-decoration:underline;text-underline-offset:3px}.codex-watch-facts a:hover{color:var(--color-pine)}.codex-watch-source .section-note{margin-top:16px}.codex-watch-events{max-width:1080px;margin-top:18px}.codex-watch-event-count{color:var(--color-accent);font-family:var(--font-data);font-size:12px}.codex-watch-event-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.codex-watch-event{display:grid;gap:10px;padding:15px;border:1px solid var(--color-rule);background:var(--color-paper-2)}.codex-watch-event-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--color-ink-soft);font-family:var(--font-data);font-size:11px}.codex-watch-kind{padding:3px 7px;font-family:var(--font-body);font-size:10px;font-weight:800;letter-spacing:.05em}.codex-watch-kind-upcoming{background:var(--color-accent-soft);color:var(--color-accent)}.codex-watch-kind-completed{background:var(--color-accent-2-soft);color:var(--color-success)}.codex-watch-event p{min-height:3.3em;margin:0;color:var(--color-pine);font-size:12px;line-height:1.65;white-space:pre-wrap}.codex-watch-event a{justify-self:start;color:var(--color-accent);font-size:11px;font-weight:700;text-decoration:underline;text-underline-offset:3px}.codex-watch-event a:hover{color:var(--color-pine)}.codex-watch-empty{margin:18px 0 0;color:var(--color-ink-soft);font-size:12px}@media (max-width: 650px){.codex-watch-module-heading{align-items:start}.codex-watch-hero-mark{min-width:0}.codex-watch-layout{grid-template-columns:1fr}.codex-watch-settings,.codex-watch-source,.codex-watch-events{padding:20px}.codex-watch-form .form-actions{flex-direction:column-reverse}.codex-watch-form .form-actions .button{width:100%}.codex-watch-event-list{grid-template-columns:1fr}}
