/* AI投資判断MVP 表側UI - Console型ダッシュボード */
.asdm-front {
	--asdm-bg:#f8fafc;
	--asdm-panel:#ffffff;
	--asdm-text:#1f2937;
	--asdm-muted:#64748b;
	--asdm-border:#e5e7eb;
	--asdm-line:#eef2f7;
	--asdm-primary:#0f2a4a;
	--asdm-primary-2:#2563eb;
	--asdm-success-bg:#ecfdf5;
	--asdm-success-text:#065f46;
	--asdm-error-bg:#fef2f2;
	--asdm-error-text:#991b1b;
	--asdm-warning-bg:#fffbeb;
	--asdm-warning-text:#92400e;
	width:100%;
	max-width:none;
	margin:0;
	padding:0;
	font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
	color:var(--asdm-text);
	box-sizing:border-box;
}

.asdm-front *{box-sizing:border-box}

.asdm-console{
	display:grid;
	grid-template-columns:220px minmax(0,1fr);
	gap:0;
	align-items:stretch;
	min-height:calc(100vh - 48px);
	background:transparent;
}

.admin-bar .asdm-console{
	min-height:calc(100vh - 80px);
}

.asdm-sidebar{
	position:sticky;
	top:24px;
	align-self:start;
	height:calc(100vh - 48px);
	min-height:0;
	overflow-y:auto;
	overscroll-behavior:contain;
	padding:16px 20px 16px 0;
	border-right:1px solid var(--asdm-border);
}

.admin-bar .asdm-sidebar{
	top:56px;
	height:calc(100vh - 88px);
}

.asdm-main{
	min-width:0;
	height:calc(100vh - 48px);
	overflow-y:auto;
	overscroll-behavior:contain;
	padding:16px 0 48px 28px;
}

.admin-bar .asdm-main{
	height:calc(100vh - 80px);
}

.asdm-brand{
	display:flex;
	align-items:center;
	gap:10px;
	padding:0 0 18px;
	margin:0 0 14px;
	border-bottom:1px solid var(--asdm-border);
}

.asdm-brand-mark{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:38px;
	height:38px;
	border-radius:12px;
	background:var(--asdm-primary);
	color:#fff;
	font-size:13px;
	font-weight:900;
	letter-spacing:.04em;
}

.asdm-brand strong{
	display:block;
	line-height:1.2;
	font-size:15px;
}

.asdm-brand span{
	display:block;
	margin-top:3px;
	color:var(--asdm-muted);
	font-size:12px;
	font-weight:700;
}

.asdm-sidebar-note{
	margin:18px 0 0;
	padding:12px;
	border:1px solid var(--asdm-border);
	border-radius:12px;
	background:#f8fafc;
	color:var(--asdm-muted);
	font-size:12px;
	line-height:1.65;
}

.asdm-tabs,
.asdm-nav{
	display:flex;
	flex-direction:column;
	gap:4px;
	margin:0;
	padding:0;
}

.asdm-tabs a,
.asdm-nav a{
	display:flex;
	align-items:center;
	min-height:40px;
	padding:9px 12px;
	border:1px solid transparent;
	border-radius:10px;
	background:transparent;
	color:#334155;
	text-decoration:none;
	font-size:14px;
	font-weight:800;
	line-height:1.2;
}

.asdm-tabs a:hover,
.asdm-tabs a:focus,
.asdm-nav a:hover,
.asdm-nav a:focus{
	background:#f1f5f9;
	color:#0f172a;
	text-decoration:none;
}

.asdm-tabs a.is-active,
.asdm-nav a.is-active{
	background:var(--asdm-primary);
	border-color:var(--asdm-primary);
	color:#fff;
	box-shadow:none;
}

.asdm-main-head{
	display:flex;
	justify-content:space-between;
	align-items:center;
	gap:16px;
	margin:0 0 20px;
	padding:0 0 16px;
	border-bottom:1px solid var(--asdm-border);
}

.asdm-main-head h1{
	margin:0;
	font-size:28px;
	line-height:1.25;
	letter-spacing:-.03em;
}

.asdm-eyebrow{
	margin:0 0 6px;
	color:var(--asdm-muted);
	font-size:12px;
	font-weight:900;
	letter-spacing:.14em;
	text-transform:uppercase;
}

.asdm-section,
.asdm-login-card{
	background:transparent;
	border:0;
	border-radius:0;
	padding:0;
	margin:0 0 32px;
	box-shadow:none;
}

.asdm-section h2{
	margin:0 0 14px;
	font-size:20px;
	line-height:1.35;
}

.asdm-section p{
	line-height:1.75;
}

.asdm-panel{
	background:transparent;
	border:0;
	box-shadow:none;
	padding:0;
}

.asdm-cards{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
	gap:12px;
	margin:0 0 8px;
}

.asdm-card{
	padding:16px;
	border:1px solid var(--asdm-border);
	border-radius:12px;
	background:#fff;
	box-shadow:none;
}

.asdm-card-number{
	font-size:28px;
	font-weight:900;
	line-height:1;
	color:var(--asdm-primary);
}

.asdm-card-label{
	margin-top:8px;
	color:var(--asdm-muted);
	font-size:13px;
	font-weight:800;
}

.asdm-status-line,
.asdm-note{
	margin:12px 0 0;
	padding:12px;
	border:1px solid var(--asdm-border);
	border-radius:12px;
	background:#f8fafc;
	color:#475569;
	line-height:1.7;
}

.asdm-grid-2{
	display:grid;
	grid-template-columns:minmax(0,1fr) minmax(0,1fr);
	gap:28px;
}

.asdm-form{
	display:grid;
	gap:12px;
	margin:8px 0;
}

.asdm-form-grid{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
	gap:12px;
}

.asdm-inline-form{
	display:flex;
	gap:12px;
	flex-wrap:wrap;
	align-items:flex-end;
	margin:12px 0 20px;
}

.asdm-field{
	display:grid;
	gap:5px;
	margin:0;
	color:#1f2937;
	font-weight:700;
}

.asdm-field-full{
	margin-top:12px;
}

.asdm-field span{
	font-size:13px;
}

.asdm-field input,
.asdm-field select,
.asdm-field textarea,
.asdm-login-card input[type="text"],
.asdm-login-card input[type="password"]{
	width:100%;
	max-width:560px;
	min-height:40px;
	padding:8px 10px;
	border:1px solid #d1d5db;
	border-radius:8px;
	background:#fff;
	color:#111827;
	font:inherit;
}

.asdm-field textarea{
	min-height:110px;
	resize:vertical;
	max-width:900px;
}

.asdm-field small{
	color:var(--asdm-muted);
	font-size:12px;
	font-weight:500;
	line-height:1.6;
}

.asdm-check-grid{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
	gap:8px;
	max-width:980px;
}

.asdm-check-grid label{
	display:flex;
	align-items:center;
	gap:8px;
	min-height:42px;
	padding:9px 10px;
	border:1px solid var(--asdm-border);
	border-radius:10px;
	background:#fff;
	font-size:13px;
	font-weight:800;
}

.asdm-check-grid input{
	width:auto;
	min-height:0;
}

.asdm-check-grid small{
	margin-left:auto;
	color:var(--asdm-muted);
	font-size:11px;
	font-weight:800;
}

.asdm-button,
.asdm-login-card input[type="submit"]{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:auto;
	max-width:max-content;
	min-height:40px;
	padding:8px 14px;
	border:0;
	border-radius:999px;
	background:var(--asdm-primary-2);
	color:#fff;
	text-decoration:none;
	cursor:pointer;
	font-weight:800;
}

.asdm-button:hover,
.asdm-button:focus,
.asdm-login-card input[type="submit"]:hover,
.asdm-login-card input[type="submit"]:focus{
	background:#1d4ed8;
	color:#fff;
	text-decoration:none;
}

.asdm-button-light{
	background:#fff;
	color:var(--asdm-primary-2);
	border:1px solid #bfdbfe;
}

.asdm-button-light:hover,
.asdm-button-light:focus{
	background:#eff6ff;
	color:#1d4ed8;
}

.asdm-table-wrap{
	width:100%;
	overflow:auto;
	border:1px solid var(--asdm-border);
	border-radius:12px;
	background:#fff;
}

.asdm-table{
	width:100%;
	border-collapse:collapse;
	font-size:14px;
}

.asdm-table th,
.asdm-table td{
	padding:10px;
	border-bottom:1px solid var(--asdm-border);
	text-align:left;
	vertical-align:top;
}

.asdm-table th{
	background:#f8fafc;
	color:#334155;
	font-size:12px;
	font-weight:900;
	white-space:nowrap;
}

.asdm-table tr:last-child td{
	border-bottom:0;
}

.asdm-table details{
	margin-top:8px;
}

.asdm-table summary{
	cursor:pointer;
	color:var(--asdm-primary-2);
	font-weight:800;
}

.asdm-alert{
	border-radius:10px;
	padding:10px 12px;
	margin:0 0 14px;
	line-height:1.7;
}

.asdm-alert-success{
	background:var(--asdm-success-bg);
	color:var(--asdm-success-text);
}

.asdm-alert-error{
	background:var(--asdm-error-bg);
	color:var(--asdm-error-text);
}

.asdm-alert-warning{
	background:var(--asdm-warning-bg);
	color:var(--asdm-warning-text);
}

.asdm-mini-list{
	display:grid;
	gap:10px;
}

.asdm-mini-list article{
	padding:12px;
	border:1px solid var(--asdm-border);
	border-radius:12px;
	background:#fff;
}

.asdm-mini-list strong{
	display:inline-block;
	margin-right:8px;
	color:var(--asdm-primary);
}

.asdm-mini-list span{
	color:var(--asdm-muted);
	font-size:12px;
	font-weight:800;
}

.asdm-mini-list p{
	margin:8px 0 0;
}

.asdm-steps{
	margin:0;
	padding-left:1.4em;
	line-height:1.8;
}

.asdm-disclaimer{
	margin:12px 0 0;
	color:var(--asdm-muted);
	font-size:12px;
	line-height:1.7;
}

.asdm-login-card{
	max-width:420px;
	margin:32px auto;
	padding:24px;
	border:1px solid var(--asdm-border);
	border-radius:16px;
	background:#fff;
}

.asdm-login-card h1{
	margin:0 0 10px;
}

.asdm-login-card form{
	display:grid;
	gap:12px;
}

@media (max-width:960px){
	.asdm-console{
		grid-template-columns:1fr;
		min-height:0;
	}
	.asdm-sidebar{
		position:static;
		height:auto;
		overflow:visible;
		padding:0 0 14px;
		border-right:0;
		border-bottom:1px solid var(--asdm-border);
	}
	.admin-bar .asdm-sidebar{
		height:auto;
	}
	.asdm-main,
	.admin-bar .asdm-main{
		height:auto;
		overflow:visible;
		padding:18px 0 36px;
	}
	.asdm-tabs,
	.asdm-nav{
		display:grid;
		grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
		gap:8px;
	}
	.asdm-tabs a,
	.asdm-nav a{
		justify-content:center;
		text-align:center;
	}
	.asdm-main-head{
		align-items:flex-start;
	}
	.asdm-grid-2{
		grid-template-columns:1fr;
	}
}

@media (max-width:600px){
	.asdm-main-head{
		display:grid;
	}
	.asdm-main-head h1{
		font-size:24px;
	}
	.asdm-cards{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}


/* v1.6.0 ポートフォリオダッシュボード */
.asdm-portfolio-hero{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:18px;
	padding:22px;
	border:1px solid var(--asdm-border);
	border-radius:18px;
	background:
		linear-gradient(135deg, rgba(15,42,74,.08), rgba(37,99,235,.06)),
		#fff;
}
.asdm-portfolio-hero h2{
	font-size:26px;
	margin:0 0 8px;
	letter-spacing:-.03em;
}
.asdm-portfolio-hero p{
	margin:0;
	color:var(--asdm-muted);
}
.asdm-metric-grid{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
	gap:12px;
}
.asdm-metric-card{
	padding:16px;
	border:1px solid var(--asdm-border);
	border-radius:16px;
	background:#fff;
	box-shadow:0 8px 24px rgba(15,23,42,.04);
}
.asdm-metric-card span{
	display:block;
	margin-bottom:8px;
	color:var(--asdm-muted);
	font-size:12px;
	font-weight:900;
	letter-spacing:.05em;
}
.asdm-metric-card strong{
	display:block;
	font-size:24px;
	line-height:1.1;
	color:var(--asdm-primary);
	letter-spacing:-.03em;
}
.asdm-metric-card small{
	display:block;
	margin-top:8px;
	color:var(--asdm-muted);
	font-size:11px;
	line-height:1.5;
}
.asdm-section-head{
	display:flex;
	align-items:flex-end;
	justify-content:space-between;
	gap:16px;
	margin:0 0 14px;
}
.asdm-section-head h2,
.asdm-section-head p{
	margin:0;
}
.asdm-section-head p{
	color:var(--asdm-muted);
}
.asdm-pnl{
	display:inline-block;
	font-weight:900;
}
.asdm-pnl.is-positive{
	color:#047857;
}
.asdm-pnl.is-negative{
	color:#b91c1c;
}
.asdm-exposure-list{
	display:grid;
	gap:12px;
}
.asdm-exposure-row{
	padding:12px;
	border:1px solid var(--asdm-border);
	border-radius:14px;
	background:#fff;
}
.asdm-exposure-row__head{
	display:flex;
	justify-content:space-between;
	gap:12px;
	margin-bottom:8px;
	font-size:14px;
}
.asdm-progress{
	height:8px;
	overflow:hidden;
	border-radius:999px;
	background:#e5e7eb;
}
.asdm-progress span{
	display:block;
	height:100%;
	border-radius:inherit;
	background:linear-gradient(90deg,#2563eb,#0f2a4a);
}
.asdm-exposure-row small{
	display:block;
	margin-top:7px;
	color:var(--asdm-muted);
}
.asdm-empty-state{
	padding:28px;
	border:1px dashed #cbd5e1;
	border-radius:18px;
	background:#fff;
	text-align:left;
}
.asdm-portfolio-table small{
	color:var(--asdm-muted);
}
@media (max-width: 860px){
	.asdm-portfolio-hero,
	.asdm-section-head{
		align-items:flex-start;
		flex-direction:column;
	}
}


/* v1.7.0: データ入稿統合とフォーム整列 */
.asdm-import-grid{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:18px;
	align-items:start;
	margin-top:18px;
}

.asdm-import-card{
	display:grid;
	gap:12px;
	min-width:0;
	padding:18px;
	border:1px solid var(--asdm-border);
	border-radius:14px;
	background:#fff;
}

.asdm-import-card h3{
	margin:0;
	font-size:17px;
	line-height:1.35;
}

.asdm-import-card p{
	margin:0;
	color:#475569;
}

.asdm-import-card .asdm-form{
	margin:0;
}

.asdm-import-card .asdm-field input[type="file"]{
	max-width:none;
}

.asdm-form{
	max-width:1280px;
}

.asdm-form-grid{
	grid-template-columns:repeat(4,minmax(0,1fr));
	align-items:start;
	gap:16px;
	max-width:1280px;
}

.asdm-field input,
.asdm-field select,
.asdm-field textarea,
.asdm-login-card input[type="text"],
.asdm-login-card input[type="password"]{
	max-width:none;
}

.asdm-field textarea{
	max-width:960px;
}

.asdm-sample{
	max-width:100%;
	white-space:pre;
	overflow:auto;
}

@media (max-width: 1280px){
	.asdm-import-grid{
		grid-template-columns:1fr;
	}
	.asdm-form-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}

@media (max-width: 720px){
	.asdm-form-grid{
		grid-template-columns:1fr;
	}
}


/* v1.8.0: 登録・データ入力統合、業績実績、AI判断レビュー */
.asdm-local-tabs{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin:0 0 8px;
	padding:6px;
	border:1px solid var(--asdm-border);
	border-radius:14px;
	background:#f8fafc;
	width:max-content;
	max-width:100%;
}

.asdm-local-tabs a{
	display:inline-flex;
	align-items:center;
	min-height:36px;
	padding:8px 14px;
	border-radius:10px;
	color:#334155;
	font-size:13px;
	font-weight:900;
	text-decoration:none;
}

.asdm-local-tabs a:hover,
.asdm-local-tabs a:focus{
	background:#eef2ff;
	color:#0f172a;
	text-decoration:none;
}

.asdm-local-tabs a.is-active{
	background:#fff;
	color:var(--asdm-primary);
	box-shadow:0 1px 2px rgba(15,23,42,.08);
}

.asdm-master-section{
	margin-bottom:18px;
}

.asdm-grid-2-forms{
	align-items:start;
	gap:32px;
}

.asdm-grid-2-forms > div{
	min-width:0;
}

.asdm-form-grid-compact{
	grid-template-columns:repeat(2,minmax(0,1fr));
	max-width:100%;
}

.asdm-review-form{
	display:grid;
	gap:8px;
	min-width:180px;
	max-width:260px;
}

.asdm-review-form textarea{
	width:100%;
	min-height:56px;
	padding:7px 8px;
	border:1px solid #d1d5db;
	border-radius:8px;
	resize:vertical;
	font-size:12px;
	line-height:1.5;
}

.asdm-button-small{
	min-height:30px;
	padding:6px 10px;
	border-radius:8px;
	font-size:12px;
}

.asdm-star-rating{
	display:inline-flex;
	flex-direction:row-reverse;
	justify-content:flex-end;
	gap:1px;
}

.asdm-star-rating input{
	position:absolute;
	opacity:0;
	pointer-events:none;
}

.asdm-star-rating label{
	cursor:pointer;
	color:#cbd5e1;
	font-size:19px;
	line-height:1;
}

.asdm-star-rating input:checked ~ label,
.asdm-star-rating label:hover,
.asdm-star-rating label:hover ~ label{
	color:#f59e0b;
}

.asdm-table td:last-child{
	min-width:180px;
}

@media (max-width: 980px){
	.asdm-grid-2,
	.asdm-grid-2-forms{
		grid-template-columns:1fr;
	}
	.asdm-form-grid-compact{
		grid-template-columns:1fr;
	}
	.asdm-local-tabs{
		width:100%;
	}
	.asdm-local-tabs a{
		flex:1 1 auto;
		justify-content:center;
	}
}

/* v1.8.1: 業績入力画面のFatal error修正 */
