:root{color:#172033;background:#f7f9fc;font-family:Segoe UI,Yu Gothic UI,Meiryo,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f7f9fc}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}svg{width:1.25rem;height:1.25rem}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.app-shell{display:flex;min-height:100vh;flex-direction:column;background:radial-gradient(circle at 80% 0%,rgba(56,120,255,.08),transparent 28rem),#f8fafd}.app-header{position:sticky;z-index:20;top:0;display:flex;min-height:72px;align-items:center;justify-content:space-between;gap:24px;padding:0 28px;background:#fffffff5;border-bottom:1px solid #dce3ed;box-shadow:0 4px 18px #17294d0a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.header-brand-group{display:flex;min-width:0;align-items:center;gap:14px}.brand{display:inline-flex;min-width:0;align-items:center;gap:16px;color:#101b31;font-size:clamp(1.05rem,2vw,1.45rem);font-weight:800;letter-spacing:0}.brand-mark,.heading-mark{display:inline-block;width:5px;border-radius:999px;background:#0d5bd7}.brand-mark{height:32px;flex:0 0 auto}.icon-button,.logout-button,.card-arrow,.recent-card{border:0;background:transparent;cursor:pointer}.icon-button{display:none;width:42px;height:42px;align-items:center;justify-content:center;color:#172033}.user-menu{display:flex;min-width:0;align-items:center;gap:20px;color:#1d2a3d}.company-name,.user-summary{padding-right:20px;border-right:1px solid #dbe3ef}.company-name{font-weight:700;white-space:nowrap}.user-summary{display:grid;gap:2px;text-align:right}.user-summary strong{max-width:190px;overflow:hidden;font-size:.95rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.user-summary span{max-width:190px;overflow:hidden;color:#687589;font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.logout-button{display:inline-flex;align-items:center;gap:8px;color:#0d5bd7;font-weight:800}.logout-button svg{width:1.15rem;height:1.15rem}.portal-frame{display:grid;flex:1;grid-template-columns:210px minmax(0,1fr)}.side-nav{padding:80px 8px 24px 22px;border-right:1px solid #dce3ed;background:#ffffffb8}.side-nav-item{position:relative;display:flex;min-height:50px;align-items:center;gap:14px;border-radius:6px;padding:0 16px;color:#3a4860;font-weight:800}.side-nav-item+.side-nav-item{margin-top:10px}.side-nav-item svg{color:#4f5f75}.side-nav-item.active{background:#eef5ff;color:#0d5bd7}.side-nav-item.active:before{position:absolute;left:0;width:5px;height:38px;border-radius:999px;background:#0d5bd7;content:""}.side-nav-item.active svg{color:#0d5bd7}.portal-main{min-width:0;padding:26px clamp(22px,5vw,80px) 24px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,320px);gap:clamp(24px,4vw,58px);max-width:1080px;margin:0 auto}.primary-panel{min-width:0}.search-box{position:relative;display:block;max-width:672px;margin:0 0 30px}.search-box svg{position:absolute;top:50%;left:18px;color:#596b82;transform:translateY(-50%)}.search-box input{width:100%;min-height:44px;border:1px solid #0d5bd7;border-radius:6px;padding:0 18px 0 52px;background:#fff;box-shadow:0 5px 16px #0d5bd71f;color:#172033}.search-box input:focus{outline:3px solid rgba(13,91,215,.18)}.section-heading{display:flex;align-items:center;gap:10px;margin-bottom:18px}.section-heading h1,.section-heading h2{margin:0;color:#111c30;font-size:1.18rem;letter-spacing:0}.section-heading p{margin:0 0 0 auto;color:#66758b;font-size:.9rem;font-weight:700}.section-heading.compact{margin:28px 0 16px}.heading-mark{height:22px}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.service-card{display:flex;min-height:176px;flex-direction:column;gap:10px;padding:24px 26px 20px;border:1px solid #d9e1ec;border-radius:10px;background:#fff;box-shadow:0 10px 26px #14274914}.service-card-link{color:inherit;text-decoration:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.service-card-link:hover{border-color:#9ebdf7;box-shadow:0 14px 32px #1427491f;transform:translateY(-1px)}.service-card-link:focus-visible{outline:3px solid rgba(13,91,215,.25);outline-offset:2px}.service-card-head{display:flex;align-items:center;justify-content:space-between;color:#0d5bd7}.service-card-body{display:grid;gap:10px}.service-icon{width:34px;height:34px}.card-arrow{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;color:#0d5bd7}.card-arrow svg{width:1.35rem;height:1.35rem}.service-card h3{margin:0;color:#152238;font-size:1.03rem;font-weight:800}.service-card p{margin:0;color:#48566b;font-size:.86rem;font-weight:650;line-height:1.65}.service-card .local-db-note{border-left:4px solid #d58b1a;padding-left:10px;color:#71440c;font-size:.78rem}.card-meta{margin-top:auto}.auth-badge,.tag-list span,.notice-badge{display:inline-flex;min-height:22px;align-items:center;border-radius:4px;padding:0 8px;font-size:.72rem;font-weight:800}.auth-badge.shared_oidc,.notice-badge.システム{background:#0d5bd7;color:#fff}.auth-badge.local_db,.notice-badge.重要{background:#ff8d3a;color:#fff}.auth-badge.public,.notice-badge.お知らせ{background:#0ea86f;color:#fff}.tag-list{display:flex;flex-wrap:wrap;gap:6px}.tag-list span{background:#edf2f8;color:#516174}.notice-panel,.profile-panel,.empty-state,.error-panel{border:1px solid #d9e1ec;border-radius:10px;background:#fff;box-shadow:0 12px 32px #14274914}.notice-panel,.profile-panel{padding:20px}.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-title-row h2,.profile-panel h2{margin:0;color:#111c30;font-size:1.08rem}.panel-title-row a{color:#0d5bd7;font-size:.82rem;font-weight:800}.notice-list{display:grid;gap:0;margin:0;padding:0;list-style:none}.notice-list li+li{border-top:1px solid #e1e7f0}.notice-list a{position:relative;display:grid;gap:8px;padding:14px 28px 16px 0}.notice-meta{display:flex;align-items:center;gap:10px}.notice-meta time{color:#637084;font-size:.78rem;font-weight:800}.notice-list h3{margin:0;color:#1a2638;font-size:.9rem}.notice-list p{margin:0;color:#4b5a6f;font-size:.8rem;font-weight:650;line-height:1.65}.notice-arrow{position:absolute;top:50%;right:0;width:1rem;color:#0d5bd7;transform:translateY(-50%)}.profile-panel{margin-top:18px}.profile-panel dl{display:grid;gap:12px;margin:14px 0 0}.profile-panel div{min-width:0}.profile-panel dt{color:#69778a;font-size:.76rem;font-weight:800}.profile-panel dd{margin:3px 0 0;overflow-wrap:anywhere;color:#1b2738;font-size:.88rem;font-weight:750}.recent-section{min-width:0}.recent-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.recent-card{display:grid;min-width:0;min-height:72px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid #d9e1ec;border-radius:8px;padding:12px 16px;background:#fff;box-shadow:0 8px 20px #14274912;color:#0d5bd7;text-align:left}.recent-card span{display:grid;min-width:0;color:#172033}.recent-card strong,.recent-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-card strong{font-size:.9rem}.recent-card small{color:#66758b;font-size:.72rem;font-weight:750}.empty-state{padding:34px}.empty-state h2{margin:0 0 8px;font-size:1.1rem}.empty-state p,.error-panel p,.login-hero p{margin:0;color:#526070}.portal-footer{display:grid;min-height:62px;grid-template-columns:1fr auto 1fr auto;align-items:center;gap:34px;padding:0 56px;border-top:1px solid #dce3ed;background:#ffffffdb;color:#46556a;font-weight:700}.portal-footer a:first-child{justify-self:end}.portal-footer span{width:1px;height:20px;background:#cdd6e3}.portal-footer p{justify-self:end;margin:0;font-size:.8rem}.button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;border:1px solid transparent;border-radius:8px;padding:0 18px;font-weight:800;text-decoration:none;cursor:pointer}.button:focus-visible,.logout-button:focus-visible,.card-arrow:focus-visible,.recent-card:focus-visible,.side-nav-item:focus-visible{outline:3px solid rgba(13,91,215,.25);outline-offset:2px}.button.primary{background:#0d5bd7;color:#fff}.button.secondary{border-color:#cbd6e5;background:#fff;color:#172033}.status-banner{display:grid;gap:4px;max-width:1080px;margin:0 auto 16px;border:1px solid #cbd6e5;border-radius:8px;padding:12px 14px;background:#fff;color:#172033;box-shadow:0 8px 20px #1427490f}.status-banner strong{font-size:.88rem}.status-banner span{overflow-wrap:anywhere;color:#526070;font-size:.82rem;font-weight:700}.status-banner.info{border-left:5px solid #0d5bd7}.status-banner.warning{border-left:5px solid #d58b1a}.status-banner.error{border-left:5px solid #d93636}.admin-main,.settings-main{display:grid;gap:16px}.admin-toolbar{display:flex;max-width:1080px;width:100%;align-items:center;justify-content:space-between;gap:18px;margin:0 auto}.admin-toolbar h1{margin:0;color:#111c30;font-size:1.34rem;letter-spacing:0}.admin-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.catalog-editor-list{display:grid;width:min(1080px,100%);gap:12px;margin:0 auto}.catalog-editor-row{display:grid;gap:14px;border:1px solid #d9e1ec;border-radius:8px;padding:18px;background:#fff;box-shadow:0 10px 26px #14274914}.catalog-editor-row.collapsed{box-shadow:0 6px 16px #1427490f}.catalog-row-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.catalog-row-heading h2{margin:0;overflow-wrap:anywhere;color:#152238;font-size:1rem}.catalog-row-actions{display:flex;flex:0 0 auto;flex-wrap:wrap;gap:12px;justify-content:flex-end}.catalog-summary-line{display:flex;min-width:0;flex-wrap:wrap;gap:8px}.catalog-summary-line span{display:inline-flex;max-width:100%;min-height:28px;align-items:center;gap:6px;border:1px solid #e1e7f0;border-radius:6px;padding:4px 8px;background:#f8fafd;color:#172033;font-size:.78rem;font-weight:750;overflow-wrap:anywhere}.catalog-summary-line span.url{flex:1 1 320px}.catalog-summary-line strong{color:#526070;font-size:.72rem;font-weight:800}.catalog-editor-fields{display:grid;gap:16px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid label{display:grid;gap:6px;min-width:0}.form-grid label.wide{grid-column:1 / -1}.form-grid span{color:#526070;font-size:.78rem;font-weight:800}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid #cbd6e5;border-radius:6px;padding:10px 12px;background:#fff;color:#172033}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:3px solid rgba(13,91,215,.18)}.toggle-row{display:flex;flex-wrap:wrap;gap:18px}.toggle-row label{display:inline-flex;align-items:center;gap:8px;color:#1d2a3d;font-weight:800}.add-row-button{width:fit-content;margin:0 auto}.settings-summary-grid,.settings-section{width:min(1080px,100%);margin:0 auto}.settings-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.settings-summary-card,.settings-section{border:1px solid #d9e1ec;border-radius:8px;background:#fff;box-shadow:0 10px 26px #14274914}.settings-summary-card{display:grid;gap:8px;min-height:96px;align-content:center;border-left:5px solid #0d5bd7;padding:18px}.settings-summary-card.ok{border-left-color:#0ea86f}.settings-summary-card.warn{border-left-color:#d58b1a}.settings-summary-card span,.settings-section-heading span,.settings-table dt,.settings-metric-group h3,.settings-metric-grid span,.settings-check-list span{color:#526070;font-size:.78rem;font-weight:800}.settings-summary-card strong{overflow-wrap:anywhere;color:#111c30;font-size:1.18rem}.settings-section{display:grid;gap:18px;padding:20px}.settings-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-section-heading h2,.settings-metric-group h3{margin:0}.settings-section-heading h2{color:#111c30;font-size:1.08rem}.settings-table{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;border:1px solid #e1e7f0;border-radius:8px;overflow:hidden}.settings-table div{display:grid;gap:5px;min-width:0;border-bottom:1px solid #e1e7f0;padding:12px 14px}.settings-table div:nth-child(odd){border-right:1px solid #e1e7f0}.settings-table div:nth-last-child(-n+2){border-bottom:0}.settings-table div:nth-last-child(2):nth-child(2n){border-bottom:1px solid #e1e7f0}.settings-table dd{margin:0;overflow-wrap:anywhere;color:#172033;font-size:.88rem;font-weight:750;line-height:1.55}.settings-metric-group{display:grid;gap:10px}.settings-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.settings-metric-grid div{display:flex;min-height:52px;align-items:center;justify-content:space-between;gap:10px;border:1px solid #e1e7f0;border-radius:8px;padding:10px 12px;background:#f8fafd}.settings-metric-grid strong{color:#0d5bd7;font-size:1rem}.settings-note{margin:0;color:#526070;font-size:.86rem;font-weight:750}.warning-text{color:#8a530f}.settings-check-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}.settings-check-list li{display:grid;min-width:0;grid-template-columns:minmax(180px,.4fr) minmax(0,1fr);gap:12px;border-left:5px solid #0d5bd7;border-radius:8px;padding:12px 14px;background:#f8fafd}.settings-check-list li.ok{border-left-color:#0ea86f}.settings-check-list li.warn{border-left-color:#d58b1a}.settings-check-list strong{overflow-wrap:anywhere;color:#172033;font-size:.88rem;line-height:1.55}.login-page,.center-screen{display:grid;min-height:100vh;place-items:center;padding:24px}.login-hero{display:grid;width:min(780px,100%);gap:28px;padding:clamp(36px,7vw,70px);border:1px solid #d7e0ea;border-radius:8px;background:#fff;box-shadow:0 22px 70px #23365224}.login-hero h1,.error-panel h1{margin:0;color:#10233d;letter-spacing:0}.login-hero h1{font-size:clamp(2.1rem,6vw,4rem)}.login-hero p{max-width:680px;margin-top:14px;font-size:1.05rem;line-height:1.8}.login-button{width:fit-content;min-width:220px}.login-error{display:grid;gap:10px;border-left:4px solid #d93636;padding-left:12px;color:#8f1d1d;font-weight:800}.login-error p{margin:0}.text-button{width:fit-content;border:0;padding:0;background:transparent;color:#0d5bd7;cursor:pointer;font-weight:800;text-decoration:underline}.button:disabled{cursor:wait;opacity:.72}.eyebrow{margin:0 0 8px;color:#526070;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.error-panel{width:min(620px,100%);padding:34px}.inline-link-button{margin-top:16px}.loading-mark{width:42px;height:42px;margin:0 auto 14px;border:4px solid #d2e0ef;border-top-color:#0d5bd7;border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1120px){.dashboard-grid{grid-template-columns:1fr}.info-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.55fr);gap:16px}.profile-panel{margin-top:0}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:820px){.app-header{min-height:60px;padding:0 16px}.icon-button{display:inline-flex}.brand{gap:10px;font-size:.98rem}.brand-mark{height:26px}.company-name,.user-summary,.logout-button span{display:none}.portal-frame{grid-template-columns:82px minmax(0,1fr)}.side-nav{padding:76px 8px 18px}.side-nav-item{min-height:44px;justify-content:center;padding:0}.side-nav-item span{display:none}.side-nav-item.active:before{height:32px}.portal-main{padding:20px 14px 22px}.search-box{margin-bottom:22px}.info-panel,.recent-grid{grid-template-columns:1fr}.portal-footer{grid-template-columns:1fr 1fr;gap:8px 16px;padding:16px;text-align:center}.portal-footer span{display:none}.portal-footer a:first-child,.portal-footer p{justify-self:center}.admin-toolbar{align-items:stretch;flex-direction:column}.admin-actions{justify-content:flex-start}.catalog-row-heading{align-items:flex-start;flex-direction:column}.catalog-row-actions{justify-content:flex-start}.form-grid{grid-template-columns:1fr}.settings-summary-grid,.settings-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-table{grid-template-columns:1fr}.settings-table div,.settings-table div:nth-child(odd),.settings-table div:nth-last-child(-n+2){border-right:0;border-bottom:1px solid #e1e7f0}.settings-table div:last-child{border-bottom:0}.settings-check-list li{grid-template-columns:1fr}}@media(max-width:560px){.portal-frame{grid-template-columns:72px minmax(0,1fr)}.service-grid{grid-template-columns:1fr}.service-card{min-height:104px;padding:14px}.service-card h3{font-size:.92rem}.service-card p{font-size:.74rem}.service-icon{width:28px;height:28px}.notice-panel,.profile-panel{padding:14px}.settings-summary-grid,.settings-metric-grid{grid-template-columns:1fr}}
