:root { --blue:#1967d2; --ink:#253044; --muted:#657185; --line:#dfe5ec; --green:#21804c; --font:"Noto Sans JP","Yu Gothic UI","Hiragino Kaku Gothic ProN","Meiryo",sans-serif; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:#f6f8fa; font:14px/1.65 var(--font); }
body.modal-open { overflow:hidden; }
button,input,textarea { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; color:inherit; }
button:disabled { cursor:default; opacity:.55; }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible { outline:3px solid #7eaff3; outline-offset:3px; }
a { color:var(--blue); text-decoration:none; }
button { border:0; background:none; }
p,h1,h2,h3 { margin:0; }
[hidden] { display:none!important; }
.shell { width:min(1440px,calc(100% - 64px)); margin-inline:auto; }
.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:fixed; left:16px; top:-80px; padding:12px; background:white; z-index:20; }
.skip-link:focus { top:8px; }
.demo-bar { background:#eef2f6; border-bottom:1px solid #e1e6ed; font-size:11px; color:#677286; }
.demo-bar .shell { display:flex; justify-content:space-between; gap:14px; padding-block:6px; }
.demo-bar b { font-weight:600; color:#4d5d73; margin-right:13px; }
.demo-bar a { white-space:nowrap; color:#4d5d73; }
.portal-header { background:white; border-bottom:1px solid var(--line); }
.header-inner { min-height:80px; display:flex; align-items:center; gap:38px; }
.company { display:flex; gap:12px; align-items:center; color:var(--ink); flex-shrink:0; }
.company-mark { display:grid; place-items:center; width:37px; height:37px; border-radius:8px; background:#e9f1fe; color:#3375cd; font:700 23px/1 sans-serif; }
.company strong { display:block; font-size:16px; font-weight:650; }
.company small { display:block; color:#738095; font-size:11px; letter-spacing:.1em; }
.header-inner nav { display:flex; align-items:stretch; gap:26px; align-self:stretch; margin-left:auto; }
.header-inner nav a { display:flex; align-items:center; position:relative; color:#697587; font-size:13px; white-space:nowrap; }
.header-inner nav a[aria-current] { color:#246bcc; font-weight:650; }
.header-inner nav a[aria-current]:after { content:""; position:absolute; height:3px; background:#4285f4; left:0; right:0; bottom:0; border-radius:3px 3px 0 0; }
.assistant-jump { background:#edf4ff; border:1px solid #d6e6fd; border-radius:7px; padding:7px 12px; font-size:12px; white-space:nowrap; }
.journey { display:flex; gap:13px; align-items:center; padding-block:15px; color:#69778b; font-size:11px; flex-wrap:wrap; }
.journey span { display:flex; align-items:center; gap:6px; }
.journey img { object-fit:contain; }
.journey i { color:#b2bcc8; font-size:16px; font-style:normal; }
.portal-layout { display:grid; grid-template-columns:minmax(0,1fr) 420px; align-items:start; gap:28px; }
#portal-content { min-width:0; scroll-margin-top:16px; }
#portal-content:focus { outline:none; }
.welcome { padding:24px 28px; border:1px solid #e0e7ef; background:linear-gradient(110deg,#f0f5fc,#f8fafc); border-radius:10px; margin-bottom:24px; }
.section-eyebrow { display:flex; align-items:center; gap:7px; color:#6380a6; font-size:11px; font-weight:650; margin-bottom:8px; }
.section-eyebrow img { object-fit:contain; width:17px; height:17px; }
.welcome h1 { font-size:25px; font-weight:650; letter-spacing:-.025em; margin-bottom:8px; text-wrap:balance; }
.welcome p:last-child { color:#6c7889; font-size:13px; }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.section-heading h2 { font-size:17px; font-weight:650; }
.section-heading>span { color:#7a8797; font-size:11px; }
.notices { background:white; border:1px solid var(--line); border-radius:9px; overflow:hidden; margin-bottom:27px; }
.notice-row { display:flex; align-items:center; gap:15px; width:100%; text-align:left; padding:14px 18px; border-bottom:1px solid #edf0f4; font-size:13px; }
.notice-row:last-child { border-bottom:0; }
.notice-row:hover { background:#f6f9fe; }
.notice-row time { font-size:11px; color:#7b8798; white-space:nowrap; }
.notice-row strong { font-weight:500; }
.notice-row>span:last-child { margin-left:auto; color:#a2acb9; }
.menu-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.menu-card { display:flex; flex-direction:column; text-align:left; gap:7px; min-width:0; padding:18px; border:1px solid var(--line); border-radius:9px; background:white; transition:border-color .15s,background .15s; }
.menu-card:hover { border-color:#a9c7f1; background:#f9fbff; }
.menu-icon { display:flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:7px; background:#f0f5fc; color:#5383bd; }
.menu-icon svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.menu-card strong { display:block; font-size:14px; font-weight:600; }
.menu-card small { display:block; color:#7d8898; font-size:11px; margin-top:3px; }
.menu-card:last-child { grid-column:1/-1; flex-direction:row; align-items:center; gap:13px; padding:14px 18px; }
.menu-card:last-child:after { content:"→"; color:#8094ae; margin-left:auto; }
.content-note { color:#7b8797; font-size:11px; margin-top:19px; }
.breadcrumb { margin-bottom:14px; font-size:12px; color:#8a95a5; display:flex; gap:10px; align-items:center; }
.page-heading { margin-bottom:23px; }
.page-heading h1 { font-size:27px; letter-spacing:-.025em; font-weight:650; }
.page-heading p { color:#758094; font-size:13px; margin-top:7px; }
.drive-location { display:flex; align-items:center; gap:12px; border:1px solid var(--line); border-radius:9px; padding:15px 17px; background:white; margin-bottom:18px; }
.drive-location img { width:30px; height:30px; object-fit:contain; }
.drive-location strong { display:block; font-size:13px; font-weight:600; }
.drive-location small { display:block; color:#8490a1; font-size:11px; }
.approved-tag { display:inline-flex; align-items:center; gap:5px; background:#edf7f0; color:#34805a; padding:3px 8px; font-size:10px; border-radius:5px; white-space:nowrap; }
.drive-location>.approved-tag { margin-left:auto; }
.file-tools { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.file-tools label { display:flex; align-items:center; flex:1; gap:8px; border:1px solid var(--line); border-radius:6px; background:white; padding:7px 11px; max-width:340px; color:#7f8c9d; }
.file-tools input { width:100%; min-width:0; border:0; color:var(--ink); outline-offset:5px; font-size:12px; background:transparent; }
.file-tools>span { font-size:12px; color:#7d899b; white-space:nowrap; }
.file-list { background:white; border:1px solid var(--line); border-radius:9px; overflow:hidden; }
.file-row,.file-head { display:grid; grid-template-columns:32px minmax(0,1fr) 75px 79px 85px; gap:11px; align-items:center; padding:17px 15px; }
.file-head { background:#f9fafc; color:#8390a1; padding-block:9px; font-size:10px; }
.file-row { border-top:1px solid #edf0f4; }
.file-row strong { font-size:12px; font-weight:600; overflow-wrap:anywhere; }
.file-meta-mobile { display:none; font-size:9px; color:#8793a4; margin-top:4px; }
.file-row .category,.file-row time { color:#768497; font-size:10px; }
.pdf-icon { position:relative; display:inline-grid; place-items:center; flex-shrink:0; width:29px; height:35px; border:1px solid #edcece; border-radius:3px; background:#fff6f5; color:#bd5555; font-size:9px; font-weight:650; }
.outline-button { border:1px solid #d8e2ef; border-radius:6px; padding:7px 9px; background:white; color:#376ba8; font-size:11px; white-space:nowrap; }
.outline-button:hover { background:#edf4ff; border-color:#b5cdf0; }
.empty-files { color:#7e8999; padding:28px; text-align:center; font-size:13px; }
.info-panel { border:1px solid var(--line); background:white; border-radius:9px; padding:22px; margin-bottom:18px; }
.info-panel h2 { font-size:17px; margin-bottom:8px; font-weight:600; }
.info-panel p { font-size:13px; color:#738094; }
.info-panel .outline-button { margin-top:16px; }
.support-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:20px; }
.support-grid .info-panel { margin:0; }
.support-label { color:#4175b8; font-size:10px; font-weight:650; margin-bottom:8px; display:block; letter-spacing:.04em; }
.faq-list { display:grid; gap:10px; }
.faq-item { border:1px solid var(--line); border-radius:9px; background:white; padding:17px 20px; }
.faq-item summary { cursor:pointer; color:#435878; font-size:14px; font-weight:600; }
.faq-item p { margin-top:12px; color:#748195; font-size:13px; }
.faq-item button { margin-top:12px; }
.assistant-panel { position:sticky; top:18px; height:calc(100dvh - 36px); max-height:810px; min-height:610px; display:flex; flex-direction:column; border:1px solid #cfdce9; border-radius:12px; background:white; box-shadow:0 4px 18px #23446706; overflow:hidden; scroll-margin-top:12px; }
.assistant-header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:18px 18px 12px; }
.assistant-heading { display:flex; align-items:center; gap:10px; }
.assistant-heading img { object-fit:contain; }
.assistant-heading h2 { font-size:17px; font-weight:650; }
.assistant-heading span { font-size:10px; color:#6b8274; display:inline-flex; align-items:center; gap:5px; }
.green-dot { width:5px; height:5px; background:#3c9a66; border-radius:50%; }
.text-button { font-size:11px; color:#6f8096; padding:5px 2px; text-decoration:underline; text-underline-offset:3px; }
.assistant-intro { padding:0 18px 13px; color:#7b8796; font-size:11px; border-bottom:1px solid #edf0f5; }
.suggestions { padding:13px 16px; background:#fbfcfe; border-bottom:1px solid #e9eef4; }
.suggestions>p { color:#74839a; font-size:11px; margin-bottom:8px; }
#question-suggestions { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.suggestion { text-align:left; border:1px solid #dae4f1; color:#42658e; background:white; font-size:11px; line-height:1.6; padding:8px 9px; border-radius:7px; }
.suggestion:hover:not(:disabled) { background:#edf4ff; border-color:#afc9ed; }
.chat-log { overflow:auto; flex:1; min-height:135px; padding:18px 16px; background:#fafbfd; overscroll-behavior:contain; scrollbar-width:thin; }
.chat-welcome { color:#61758f; font-size:13px; line-height:1.9; padding:10px 3px; }
.chat-welcome img { width:21px; height:21px; object-fit:contain; vertical-align:middle; margin-right:5px; }
.chat-welcome small { display:block; color:#8794a5; font-size:11px; margin-top:12px; }
.message { margin-bottom:18px; }
.message:last-child { margin-bottom:0; }
.message-label { color:#8290a3; font-size:10px; margin-bottom:5px; display:block; }
.user-message { margin-left:28px; }
.user-message .message-label { text-align:right; }
.user-message p { padding:10px 13px; border-radius:10px 10px 2px 10px; background:#eaf2ff; color:#335982; font-size:13px; white-space:pre-wrap; overflow-wrap:anywhere; }
.assistant-message { margin-right:7px; }
.answer-body { background:white; border:1px solid #e1e7ef; border-radius:2px 10px 10px 10px; padding:14px; }
.answer-text { font-size:13px; line-height:1.95; white-space:pre-line; overflow-wrap:anywhere; }
.answer-badge { color:#4f8666; font-size:10px; display:block; margin-bottom:7px; }
.citation { border-top:1px solid #e8edf4; padding-top:11px; margin-top:13px; }
.citation>small { color:#8691a2; font-size:10px; display:block; margin-bottom:6px; }
.citation-file { display:flex; align-items:center; gap:9px; }
.citation-file strong { display:block; font-size:12px; font-weight:600; overflow-wrap:anywhere; }
.citation-file span { display:block; font-size:10px; color:#8390a0; }
.citation button { margin-top:10px; width:100%; }
.fallback-label { font-size:10px; color:#927447; margin-bottom:8px; display:block; }
.fallback-action { margin-top:13px; }
.progress-message { background:white; padding:13px; border:1px solid #e0e8f3; border-radius:9px; }
.progress-title { display:flex; align-items:center; gap:8px; font-size:12px; color:#4a6e9b; margin-bottom:10px; }
.progress-spinner { width:13px; height:13px; border:2px solid #d9e7fa; border-top-color:#4285f4; border-radius:50%; animation:spin 1s linear infinite; flex-shrink:0; }
.search-steps { list-style:none; padding:0; margin:0; display:grid; gap:6px; font-size:11px; color:#a1adbb; }
.search-steps li { display:flex; align-items:flex-start; gap:7px; }
.search-steps li:before { content:"○"; width:12px; flex-shrink:0; }
.search-steps li.done { color:#527961; }
.search-steps li.done:before { content:"✓"; }
.search-steps li.active { color:#5d7eaa; }
.chat-form { padding:12px 14px 7px; border-top:1px solid #e6ebf2; background:white; }
.composer { display:flex; gap:8px; align-items:flex-end; padding:9px; border:1px solid #ccd9e9; border-radius:9px; }
.composer:focus-within { border-color:#87b1ea; box-shadow:0 0 0 2px #edf4ff; }
.composer textarea { width:100%; min-width:0; resize:none; border:0; outline:none; background:transparent; color:#31455d; font-size:12px; line-height:1.6; }
.composer textarea::placeholder { color:#a1abba; }
.primary-button { padding:8px 12px; background:#2672d3; color:white; border-radius:6px; font-size:12px; font-weight:550; white-space:nowrap; }
.primary-button:hover:not(:disabled) { background:#185fbd; }
.composer-meta { display:flex; justify-content:space-between; align-items:center; color:#a1aab7; font-size:9px; min-height:22px; }
.composer-meta .text-button { font-size:10px; padding:0; }
.assistant-note { padding:5px 16px 12px; font-size:9px; line-height:1.7; color:#8a95a4; }
.assistant-note p+p { margin-top:4px; }
.assistant-note>span { display:block; margin-top:5px; color:#a0a9b5; }
.portal-footer { display:flex; justify-content:space-between; gap:16px; font-size:10px; color:#8d98a8; padding-block:32px; }
#portal-dialog { width:min(850px,calc(100% - 40px)); max-height:calc(100dvh - 40px); padding:0; margin:auto; border:1px solid #d9e1ed; border-radius:12px; color:var(--ink); background:#f0f3f7; overflow:auto; }
#portal-dialog::backdrop { background:#25334888; }
.dialog-header { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:17px 24px; border-bottom:1px solid #dce3ed; background:white; position:sticky; top:0; z-index:2; }
.dialog-header small { color:#8291a4; font-size:10px; }
.dialog-header h2 { font-size:16px; font-weight:600; overflow-wrap:anywhere; }
.dialog-header button { border:1px solid #d6deea; border-radius:6px; padding:7px 12px; font-size:12px; white-space:nowrap; }
.pdf-toolbar { display:flex; justify-content:space-between; gap:12px; padding:12px 26px; color:#7e8a9a; font-size:11px; }
.pdf-toolbar .reference-indicator { color:#826c2f; }
.pdf-sheet { margin:0 26px 26px; padding:35px 45px 25px; min-height:420px; background:white; border:1px solid #e0e5ec; box-shadow:0 2px 5px #182d4610; }
.pdf-sheet-header { display:flex; justify-content:space-between; gap:16px; color:#8d97a5; font-size:10px; padding-bottom:20px; border-bottom:1px solid #e4e8ed; }
.pdf-sheet h3 { font-size:24px; margin:26px 0 8px; font-weight:600; }
.pdf-sheet .doc-meta { color:#909baa; font-size:10px; margin-bottom:30px; }
.pdf-sheet h4 { font-size:17px; font-weight:600; margin:0 0 15px; }
.document-passage { color:#4f5b6b; font-size:14px; line-height:2; padding:18px 20px; border-left:3px solid #e8edf3; background:#fafbfd; }
.document-passage p+p { margin-top:12px; }
.document-passage.is-cited { border-color:#e5bd52; background:#fffbed; }
.document-passage mark { background:#fff0ab; color:inherit; box-decoration-break:clone; -webkit-box-decoration-break:clone; padding:2px 0; }
.pdf-sheet-footer { display:flex; justify-content:flex-end; gap:12px; color:#9da6b3; border-top:1px solid #edf0f4; padding-top:18px; margin-top:34px; font-size:10px; }
.detail-sheet { padding:28px; background:white; }
.detail-sheet p { color:#718095; font-size:14px; line-height:1.9; }
.detail-sheet .outline-button { margin-top:18px; }
.detail-sheet ol { padding-left:22px; color:#64778e; line-height:2.2; font-size:14px; }
.detail-sheet .sample-note { margin-top:22px; padding-top:14px; border-top:1px solid #e4e9f0; font-size:11px; color:#929daf; }
.noscript { padding:30px; color:#a34f37; text-align:center; }
@media(min-width:951px) and (max-width:1150px), (max-width:600px) { .file-meta-mobile { display:block; } }
@keyframes spin { to { transform:rotate(360deg); } }
@media(min-width:1500px) { .portal-layout { grid-template-columns:minmax(0,1fr) 470px; gap:34px; } .assistant-heading h2 { font-size:18px; } .answer-text { font-size:14px; } }
@media(max-width:1150px) { .shell { width:calc(100% - 40px); } .portal-layout { grid-template-columns:minmax(0,1fr) 380px; gap:20px; } .file-row,.file-head { grid-template-columns:28px minmax(0,1fr) 75px; } .file-row .category,.file-row time,.file-head .category,.file-head .updated { display:none; } .header-inner { gap:22px; } .header-inner nav { gap:19px; } .welcome { padding:21px; } .welcome h1 { font-size:22px; } .menu-card { padding:14px; } .menu-card small { font-size:10px; } }
@media(max-width:950px) { .portal-layout { grid-template-columns:minmax(0,1fr); } .assistant-panel { position:static; height:740px; max-height:none; min-height:0; } .file-row,.file-head { grid-template-columns:32px minmax(0,1fr) 85px 85px 90px; } .file-row .category,.file-row time,.file-head .category,.file-head .updated { display:block; } .header-inner { flex-wrap:wrap; gap:8px 20px; padding-block:14px 0; } .header-inner nav { order:3; width:100%; margin:0; min-height:40px; } .assistant-jump { margin-left:auto; } .journey { gap:6px 10px; font-size:10px; } .portal-footer { padding-block:24px; } }
@media(max-width:600px) { .shell { width:calc(100% - 32px); } .demo-detail { display:none; } .demo-bar { font-size:10px; } .header-inner nav { gap:22px; flex-wrap:wrap; } .header-inner nav a { font-size:11px; min-height:36px; } .company strong { font-size:14px; } .company-mark { width:32px; height:32px; font-size:21px; } .journey { padding-block:13px; } .journey img { width:14px; height:14px; } .welcome { padding:20px; margin-bottom:22px; } .welcome h1 { font-size:21px; } .welcome p:last-child { font-size:12px; } .notice-row { flex-wrap:wrap; gap:4px 12px; padding:12px 15px; } .notice-row strong { flex-basis:100%; order:3; font-size:12px; } .notice-row time { font-size:10px; } .menu-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; } .menu-card { padding:16px; } .menu-card strong { font-size:13px; } .file-row,.file-head { grid-template-columns:27px minmax(0,1fr) 77px; gap:9px; padding-inline:12px; } .file-row .category,.file-row time,.file-head .category,.file-head .updated { display:none; } .drive-location { gap:9px; padding:12px; } .drive-location strong { font-size:12px; } .drive-location>.approved-tag { font-size:9px; } .file-row strong { font-size:11px; } .file-tools>span { font-size:10px; } .support-grid { grid-template-columns:1fr; } .assistant-panel { height:770px; border-radius:10px; } .assistant-heading h2 { font-size:16px; } .assistant-intro { font-size:10px; } .assistant-note { font-size:10px; } .suggestion { font-size:11px; } .portal-footer { display:block; } .portal-footer span { display:block; } #portal-dialog { width:calc(100% - 20px); max-height:calc(100dvh - 20px); } .dialog-header { padding:13px 15px; gap:10px; } .dialog-header h2 { font-size:13px; } .dialog-header button { font-size:11px; padding:7px 9px; } .pdf-toolbar { padding:11px 15px; font-size:10px; flex-wrap:wrap; } .pdf-sheet { margin:0 12px 14px; padding:23px 18px; min-height:0; } .pdf-sheet h3 { font-size:20px; } .document-passage { font-size:13px; padding:13px; } .pdf-sheet-header { font-size:9px; } }
@media(prefers-reduced-motion:reduce) { *,*:before,*:after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
