/* ホームとログイン後のナビゲーションに限定。既存業務画面の部品には適用しない。 */
.portal-icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle}
.portal-auth>aside{background:#303664;color:#edf0ff;padding:28px 16px}
.portal-auth .portal-nav{display:block;margin:24px 0 0;overflow:visible}
.portal-nav .portal-home-link{display:flex;gap:10px;align-items:center;margin-bottom:20px}
.portal-nav a:hover,.portal-nav a[aria-current]{background:#4c5383;color:#fff;border-left:0}
.portal-nav .portal-home-link[aria-current]{background:#4c5383}
.portal-nav-caption{font-size:11px;letter-spacing:.1em;color:#bcc4e4;padding:0 12px;margin:0 0 10px}
.portal-nav-group{margin:3px 0}
.portal-nav-group summary{display:flex;align-items:center;gap:9px;padding:10px;list-style:none;cursor:pointer;font-size:13px;border-radius:7px}
.portal-nav-group summary::-webkit-details-marker{display:none}
.portal-nav-group summary:after{content:'›';margin-left:auto;color:#c6ceea}
.portal-nav-group[open]>summary:after{transform:rotate(90deg)}
.portal-nav-group summary:hover{background:#424971}
.portal-nav-items{margin:0 0 8px 20px;padding-left:10px;border-left:1px solid #565d88}
.portal-nav-items a,.portal-nav-pending{display:block;padding:7px 8px;color:#d5dcf2;font-size:12px;white-space:normal}
.portal-nav-pending small{display:inline;margin-left:6px;color:#bfc7e1;font-size:10px}
.portal-auth .aside-note{color:#bcc4e4}
.portal-menu-toggle,.portal-nav-shade{display:none}
.portal-dashboard{color:#26324a}
.portal-heading{margin-bottom:26px}
.portal-heading h1{font-size:27px;margin:0 0 4px}
.portal-heading p{font-size:13px;color:#68768a;margin:0}
.portal-dashboard .portal-section{padding:0;margin:0 0 25px;border:0;box-shadow:none;border-radius:0;background:none}
.portal-section h2{display:flex;align-items:center;gap:8px;font-size:15px;margin:0 0 11px;color:#26324a}
.portal-section h2:after{content:'';height:1px;background:#e0e5ee;flex:1;margin-left:6px}
.portal-section h2 .portal-icon{color:#5059a9;width:18px;height:18px}
.portal-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.portal-tile{display:flex;align-items:center;gap:11px;min-height:85px;padding:16px 14px;border:1px solid #e1e6ef;background:#fff;border-radius:10px;color:#26324a;text-decoration:none;transition:border-color .15s,box-shadow .15s}
a.portal-tile:hover{border-color:#929bce;box-shadow:0 3px 12px #3036640d;color:#26324a;text-decoration:none}
.portal-tile-icon{display:grid;place-items:center;flex-shrink:0;width:36px;height:38px;border-radius:9px;background:#eef0fc;color:#5059a9}
.portal-tile-copy{min-width:0}
.portal-tile-copy strong{display:block;font-size:14px;font-weight:600;overflow-wrap:anywhere}
.portal-tile-copy small{display:block;font-size:11px;color:#6b768b;margin-top:3px}
.portal-coming{display:block;font-size:11px;color:#768092;margin-top:3px}
.portal-dashboard .portal-notices{border:0;border-top:1px solid #dfe5ee;background:none;box-shadow:none;border-radius:0;padding:18px 0;margin:28px 0 0}
.portal-notices h2{font-size:14px;margin:0 0 8px}
.portal-notices p{font-size:13px;color:#6b768b;overflow-wrap:anywhere}
@media(max-width:1200px){.portal-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.portal-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){
	.portal-auth>aside{display:none;position:fixed;inset:0 auto 0 0;width:min(300px,85vw);height:100dvh;padding:23px 16px;z-index:1102;overflow-y:auto;overscroll-behavior:contain}
	.portal-auth.portal-nav-open>aside{display:block}
	.portal-auth.portal-nav-open{overflow:hidden}
	.portal-auth .portal-nav{display:block;margin-top:22px}
	.portal-auth .portal-nav a{white-space:normal}
	.portal-nav a[aria-current]{border-bottom:0}
	.portal-nav .portal-home-link,.portal-nav-items a,.portal-nav-group summary{min-height:44px}
	.portal-nav-pending{min-height:38px}
	.portal-auth .portal-menu-toggle{display:inline-flex;background:#edf0fc;color:#363d78;border:0;padding:9px 10px;min-height:44px;font-size:12px;gap:6px}
	.portal-auth .portal-date{display:none}
	.portal-auth .shell>header{padding:0 12px;gap:8px;height:auto;min-height:66px;flex-wrap:wrap}
	.portal-auth .shell>header .user{gap:6px;min-width:0;max-width:100%}
	.portal-auth .shell>header .user>span{max-width:150px;overflow-wrap:anywhere;font-size:12px}
	.portal-auth .shell>header .user small{font-size:10px}
	.portal-auth .portal-nav-shade:not([hidden]){display:block;position:fixed;inset:0;width:100%;height:100%;border:0;border-radius:0;padding:0;background:#14203980;z-index:1101;cursor:default}
	.portal-heading h1{font-size:24px}
	.portal-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
	.portal-tile{min-height:76px;padding:13px 10px;gap:8px}
	.portal-tile-copy strong{font-size:13px}
	.portal-tile-copy small{display:none}
	.portal-tile-icon{width:30px;height:34px}
	.portal-tile-icon .portal-icon{width:18px;height:18px}
	.portal-section h2{font-size:14px}
}
@media(prefers-reduced-motion:reduce){.portal-tile{transition:none}}
.portal-menu-close{display:none}@media(max-width:700px){.portal-menu-close{display:flex;margin:0 0 18px auto;background:#4c5383;color:#fff;border:0;font-size:12px;min-height:44px}.portal-menu-close:hover{background:#59618f}}

.portal-expense-alert{display:block;color:#8a4b08;background:#fff2cf;border-radius:5px;padding:4px 7px;margin-top:7px;font-size:12px;font-weight:600;white-space:normal}
.portal-expense-alert[hidden]{display:none}
.portal-tile:has(.portal-expense-alert:not([hidden])){border-color:#e1b44e;background:#fffaf0}
