:root{--color-primary:#1f4e79;--color-primary-strong:#163a5b;--color-bg:#f4f6f8;--color-surface:#fff;--color-text:#1b1f24;--color-muted:#5f6b76;--color-border:#d6dde3;--color-ok:#1e8e3e;--color-down:#c5221f;--color-warning-bg:#fff4e5;--color-error:#b3261e;--color-error-bg:#fdecea;--color-success-bg:#e6f4ea;--color-info-bg:#e8f0fe;--color-info:#1a56b8;--color-neutral-bg:#eef1f4;--touch-target:48px;--radius:10px;--gutter:16px;--header-height:52px;--nav-height:64px;--content-max-width:480px;color:var(--color-text);background:var(--color-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-family:system-ui,-apple-system,Apple SD Gothic Neo,Malgun Gothic,Noto Sans KR,sans-serif;font-size:16px;line-height:1.5}*,:before,:after{box-sizing:border-box}body{background:var(--color-bg);min-height:100dvh;margin:0}h1{margin:0;font-size:1.375rem}button,input,select,textarea{font:inherit}.page,.card,.notice{overflow-wrap:anywhere}.app-shell{min-height:100dvh;max-width:var(--content-max-width);background:var(--color-bg);flex-direction:column;margin:0 auto;display:flex}.app-header{z-index:10;min-height:var(--header-height);padding:env(safe-area-inset-top) var(--gutter) 0;background:var(--color-primary);color:#fff;justify-content:space-between;align-items:center;gap:8px;display:flex;position:sticky;top:0}.app-header__title{white-space:nowrap;font-weight:700}.app-header__side{align-items:center;gap:10px;min-width:0;display:flex}.app-header .api-status__label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-main{padding:var(--gutter);padding-bottom:calc(var(--nav-height) + var(--gutter) + env(safe-area-inset-bottom));flex:1}.bottom-nav{z-index:10;width:100%;max-width:var(--content-max-width);height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--color-surface);border-top:1px solid var(--color-border);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav__tab{min-height:var(--touch-target);color:var(--color-muted);justify-content:center;align-items:center;font-size:1.0625rem;font-weight:600;text-decoration:none;display:flex}.bottom-nav__tab.is-active{color:var(--color-primary);box-shadow:inset 0 3px 0 var(--color-primary)}.page__title{margin-bottom:4px}.page__screen-id,.login-page__screen-id{margin:0 0 var(--gutter);color:var(--color-muted);font-size:.8125rem}.empty-state{padding:32px var(--gutter);text-align:center;color:var(--color-muted);background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius)}.login-page{max-width:var(--content-max-width);min-height:100dvh;padding:calc(48px + env(safe-area-inset-top)) var(--gutter) var(--gutter);flex-direction:column;margin:0 auto;display:flex}.login-page__title{color:var(--color-primary);font-size:1.625rem}.login-page__help{color:var(--color-muted);font-size:.875rem}.login-page__header{margin-bottom:8px}.login-page__footer{padding-top:var(--gutter);text-align:center;flex-direction:column;align-items:center;gap:8px;margin-top:auto;display:flex}.login-page__contact{color:var(--color-muted);margin:0;font-size:.875rem}.session-loading{padding:64px var(--gutter);text-align:center;color:var(--color-muted)}.form{flex-direction:column;gap:16px;display:flex}.form__field{flex-direction:column;gap:6px;font-weight:600;display:flex}.form__field input:not([type=checkbox],[type=radio]),.form__field select,.form__field textarea,.search-row input,.filters__dates input{width:100%;min-width:0;min-height:var(--touch-target);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);padding:0 14px;font-size:1rem}.form__field textarea{resize:vertical;padding:10px 14px}.form__field input:focus,.form__field select:focus,.form__field textarea:focus{outline:2px solid var(--color-primary);outline-offset:1px}.form__field input[aria-invalid=true]{border-color:var(--color-error)}.form__error,.form__hint{margin:0;font-size:.875rem;font-weight:400}.form__error{color:var(--color-error)}.form__hint{color:var(--color-muted)}.rule-list{color:var(--color-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:4px;margin:0;padding:12px 14px;font-size:.9375rem;list-style:none;display:flex}.rule-list__item.is-met{color:var(--color-ok);font-weight:600}.rule-list__mark{width:1.25em;display:inline-block}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.button{border-radius:var(--radius);cursor:pointer;border:0;min-height:52px;padding:0 20px;font-size:1.0625rem;font-weight:700}.button--primary{background:var(--color-primary);color:#fff}.button--primary:active{background:var(--color-primary-strong)}.button:disabled{cursor:not-allowed;opacity:.55}.button--secondary{color:var(--color-primary);background:var(--color-surface);border:1px solid var(--color-border)}.button--text{min-height:var(--touch-target);color:var(--color-primary);background:0 0;text-decoration:underline}.notice{margin:0 0 var(--gutter);border-radius:var(--radius);padding:12px 14px}.notice--warning{background:var(--color-warning-bg)}.notice--error{color:var(--color-error);background:var(--color-error-bg);margin:0}.notice--success{background:var(--color-success-bg)}.notice__text{margin:0}.notice__list{margin:6px 0 0;padding-left:1.25em}.api-status{white-space:nowrap;opacity:.9;align-items:center;gap:6px;font-size:.75rem;display:inline-flex}.api-status__dot{background:currentColor;border-radius:50%;width:8px;height:8px}.api-status--ok .api-status__dot{background:var(--color-ok)}.api-status--down .api-status__dot{background:var(--color-down)}.login-page .api-status{color:var(--color-muted)}.stack{flex-direction:column;gap:12px;display:flex}.stack>.page__title,.page.stack>div>.page__screen-id{margin-bottom:0}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);min-width:0;margin:0 0 12px;padding:14px}.stack>.card,fieldset.card{margin-bottom:0}fieldset.card{min-inline-size:0}.card__head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.card__title{margin:0 0 8px;padding:0;font-size:1.0625rem;font-weight:700}.card__head .card__title{margin:0}.card__subtitle{margin:14px 0 6px;font-size:1rem}.card__eyebrow{color:var(--color-primary);margin:0 0 6px;font-size:.875rem;font-weight:700}.muted{color:var(--color-muted)}.text-danger{color:var(--color-error);font-weight:700}.mono,.input--code{letter-spacing:.04em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.form__field .input--code{text-transform:uppercase;font-size:1.125rem}.info-list{gap:6px;margin:0;display:grid}.info-list>div{grid-template-columns:7.5em minmax(0,1fr);gap:8px;display:grid}.info-list dt{color:var(--color-muted);font-size:.9375rem}.info-list dd{min-width:0;margin:0}.notice--info{background:var(--color-info-bg)}.stack>.notice,.form>.notice{margin:0}.notice__meta{opacity:.8;margin:6px 0 0;font-size:.75rem}.button--block{justify-content:center;align-items:center;width:100%;margin-top:12px;text-decoration:none;display:flex}.button--small{min-height:var(--touch-target);padding:0 14px;font-size:1rem}a.button{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.button-row{grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:column;gap:8px;display:grid}.back-link{min-height:40px;color:var(--color-primary);align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.segmented{flex-wrap:wrap;gap:6px;display:flex}.segmented__item,.chip{min-height:var(--touch-target);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;flex:auto;justify-content:center;align-items:center;padding:0 12px;font-weight:600;display:inline-flex;position:relative}.chip{flex:0 auto}.segmented__item input,.chip input{opacity:0;pointer-events:none;position:absolute}.segmented__item.is-selected,.chip.is-selected{color:#fff;background:var(--color-primary);border-color:var(--color-primary)}:is(.segmented__item:has(input:focus-visible),.chip:has(input:focus-visible)){outline:2px solid var(--color-primary);outline-offset:2px}.chips{flex-wrap:wrap;gap:6px;display:flex}.check{min-height:var(--touch-target);align-items:center;gap:10px;font-weight:500;display:flex}.check input{flex:none;width:22px;height:22px}.search-row{gap:8px;display:flex}.search-row input{border:1px solid var(--color-border);border-radius:var(--radius);flex:1;padding:0 12px;font-size:1rem}.pick-list,.scan-list,.plain-list,.note-list,.diag-list,.steps{margin:0;padding:0;list-style:none}.pick-list{flex-direction:column;gap:6px;max-height:320px;display:flex;overflow-y:auto}.pick-list__item{border:1px solid var(--color-border);border-radius:var(--radius);align-items:flex-start;gap:10px;padding:10px 12px;font-weight:400;display:flex}.pick-list__item.is-selected{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}.pick-list__item input{flex:none;width:20px;height:20px;margin-top:4px}.pick-list__main{flex-direction:column;min-width:0;display:flex}.pick-list__sub,.plain-list__sub{color:var(--color-muted);font-size:.875rem;display:block}.guides{flex-direction:column;gap:8px;margin-top:16px;display:flex}.guide{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:0 14px}.guide summary{min-height:var(--touch-target);cursor:pointer;align-items:center;font-weight:600;display:flex}.guide ol,.guide p{margin:0 0 12px}.badge{white-space:nowrap;border-radius:999px;flex:none;align-items:center;min-height:26px;padding:0 10px;font-size:.8125rem;font-weight:700;display:inline-flex}.badge--info{color:var(--color-info);background:var(--color-info-bg)}.badge--active{color:#7a4b00;background:var(--color-warning-bg)}.badge--success{color:#fff;background:var(--color-ok)}.badge--danger{color:#fff;background:var(--color-error)}.badge--muted{color:var(--color-muted);background:var(--color-neutral-bg)}.badge--outline{color:var(--color-text);border:1px solid var(--color-border);background:0 0}.diag-counts{color:var(--color-muted);font-size:.875rem}.diag-list{border-top:1px solid var(--color-border);flex-direction:column;display:flex}.diag-list__item{border-bottom:1px solid var(--color-border);border-left:4px solid #0000;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:8px 0 8px 10px;display:grid}.diag-list__status{text-align:right;font-weight:600}.diag-list__value{color:var(--color-muted);overflow-wrap:anywhere;grid-column:1/-1;font-size:.875rem}.diag-list__status{color:var(--color-text)}.diag-list__raw{color:var(--color-muted);font-weight:400}.diag-list__reason{color:var(--color-muted);overflow-wrap:anywhere;grid-column:1/-1;font-size:.875rem}.diag--progress{border-left-color:var(--color-info)}.diag--collected{border-left-color:var(--color-border)}.diag--attention{border-left-color:#e8a200}.diag--problem{border-left-color:var(--color-error)}.diag--skipped{border-left-color:var(--color-neutral-bg)}.diag--skipped .diag-list__status{color:var(--color-muted)}.diag--unknown{border-left-color:var(--color-muted);border-left-style:dashed}.stage-card{border-radius:var(--radius);background:var(--color-info-bg);border:1px solid #c6d7f7;padding:16px}.stage-card--pc_received{background:var(--color-warning-bg);border-color:#f3d9a6}.stage-card--stored{background:var(--color-success-bg);border-color:#a8d5b5}.stage-card--storage_failed{background:var(--color-error-bg);border-color:#f2b8b5}.stage-card--expired{background:var(--color-neutral-bg);border-color:var(--color-border)}.stage-card__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.stage-card__title{margin:4px 0 8px;font-size:1.1875rem;font-weight:700}.stage-card__line{margin:0 0 6px}.stage-card__timer{margin:10px 0 0;font-size:1.0625rem}.steps{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:4px;padding:12px 14px;display:flex}.steps__item{color:var(--color-muted)}.steps__item--done{color:var(--color-ok);font-weight:600}.steps__item--current{color:var(--color-primary);font-weight:700}.steps__item--failed{color:var(--color-error);font-weight:600}.steps__mark{width:1.5em;display:inline-block}.filters{flex-direction:column;gap:10px;display:flex}.filters__dates{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px;display:grid}.filters__dates input{border:1px solid var(--color-border);border-radius:var(--radius);padding:0 8px}.filters__selects{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.filters__wide{grid-column:1/-1}.filters__selects .form__field select{padding:0 10px}.list-hint{margin:0 0 12px}.scan-list{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.scan-row{color:inherit;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:4px;padding:12px 14px;text-decoration:none;display:flex}.scan-row:active{background:var(--color-neutral-bg)}.scan-row__top,.scan-row__meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.scan-row__meta{justify-content:flex-start}.scan-row__date{color:var(--color-muted);font-size:.875rem}.scan-row__title{font-weight:700}.scan-row__sub{color:var(--color-muted);font-size:.875rem}.plain-list{flex-direction:column;gap:8px;display:flex}.note-list{flex-direction:column;gap:10px;display:flex}.note{border-top:1px solid var(--color-border);padding:10px 0}.note--corrected .note__content{color:var(--color-muted)}.note__head,.note__tags,.note__checks,.note__correction{margin:0 0 4px;font-size:.875rem}.note__id{color:var(--color-muted)}.note__correction{color:#7a4b00;font-weight:600}.note__content{white-space:pre-wrap;margin:4px 0}.note__checks{color:var(--color-muted)}.report-frame{border:1px solid var(--color-border);border-radius:var(--radius);background:#fff;width:100%;height:75dvh;display:block}.home__greeting p{margin:0}.home__name{font-size:1.1875rem;font-weight:700}.home__approve{min-height:64px;margin-top:0;font-size:1.25rem}.home__section{flex-direction:column;gap:8px;display:flex}.home__heading{margin:4px 0 0;font-size:1.0625rem}.home__section .notice .scan-list{margin:8px 0 0}.scan-row__guide{color:var(--color-primary);font-size:.875rem;font-weight:600}.my-info__actions .button--block:first-child{margin-top:0}.my-info__logout{color:var(--color-error)}
