:root{
  --bg:#F5F3EF; --surface:#FFF; --surface-alt:#FAF9F6;
  --dark:#1C1917; --ink:#1C1917; --sub:#6B6560; --faint:#9C9590;
  --gold:#A8843C; --gold-light:#F0E8D5;
  --border:#E4E0D8;
  --ok:#2D6A4F; --ok-bg:#D8F3DC;
  --warn:#7B4C00; --warn-bg:#FFF3CD;
  --danger:#922020; --danger-bg:#FDEAEA;
  --info:#1A3A6B; --info-bg:#E0E9FA;
  --sans:'Zen Kaku Gothic New','Hiragino Kaku Gothic ProN',sans-serif;
  --mincho:'Shippori Mincho','Hiragino Mincho ProN',serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--dark)}
body{font-family:var(--sans);color:var(--ink)}
.app{max-width:430px;margin:0 auto;min-height:100vh;background:var(--bg);display:flex;flex-direction:column;position:relative}
a{text-decoration:none;color:inherit}

.hd{background:var(--dark);padding:14px 16px 12px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20}
.hd .brand{font-family:var(--mincho);font-size:18px;font-weight:700;color:#fff;line-height:1}
.hd .tagline{font-size:10px;color:rgba(255,255,255,.3);letter-spacing:.15em;margin-top:3px}
.hd .user{display:flex;align-items:center;gap:8px}
.hd .user .nm{font-size:13px;color:rgba(255,255,255,.8);font-weight:600;text-align:right}
.hd .user .st{font-size:11px;color:rgba(255,255,255,.35);text-align:right}
.hd .avatar{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--gold);display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--gold);font-weight:700}

.pt{background:var(--surface);padding:12px 16px;border-bottom:1px solid var(--border)}
.pt h1{font-size:15px;font-weight:700;font-family:var(--mincho);letter-spacing:.06em}
.pt .crumb{font-size:11px;color:var(--faint);margin-bottom:2px}

main{flex:1;padding:14px 14px 84px;overflow-y:auto}

.card{background:var(--surface);border-radius:10px;border:1px solid var(--border);overflow:hidden;margin-bottom:12px}
.card-hd{padding:14px 16px;border-bottom:1px solid var(--border);border-left:3px solid var(--gold);display:flex;justify-content:space-between;align-items:center}
.card-hd .t{font-size:14px;font-weight:700}
.card-bd{padding:16px}

.bdg{display:inline-block;font-size:11px;font-weight:700;padding:3px 9px;border-radius:3px;white-space:nowrap;letter-spacing:.03em}
.bdg.gray{background:#EFEDE8;color:var(--sub)}
.bdg.blue{background:var(--info-bg);color:var(--info)}
.bdg.gold{background:var(--gold-light);color:var(--warn)}
.bdg.green{background:var(--ok-bg);color:var(--ok)}
.bdg.red{background:var(--danger-bg);color:var(--danger)}
.bdg.solid{background:var(--gold);color:#fff}
.bdg.lg{font-size:13px;padding:6px 16px}

.alert{border-radius:8px;padding:12px 14px;font-size:13px;font-weight:600;line-height:1.6;margin-bottom:12px}
.alert.red{background:var(--danger-bg);border:1px solid #F5BCBC;color:var(--danger)}
.alert.gold{background:var(--warn-bg);border:1px solid #E8C97A;color:var(--warn)}
.alert span{font-size:12px;font-weight:400}

.stepper{display:flex;align-items:center;margin-bottom:14px}
.step{flex:1;text-align:center;position:relative}
.step .dot{width:26px;height:26px;border-radius:50%;background:var(--surface);border:2px solid var(--border);margin:0 auto 6px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--faint);position:relative;z-index:1}
.step.done .dot{background:var(--gold);border-color:var(--gold);color:#fff}
.step.now .dot{background:var(--gold-light);border-color:var(--gold);color:var(--warn)}
.step .lbl{font-size:10px;color:var(--faint);font-weight:600}
.step.done .lbl,.step.now .lbl{color:var(--warn)}
.step::before{content:"";position:absolute;top:13px;left:-50%;width:100%;height:2px;background:var(--border)}
.step:first-child::before{display:none}
.step.done::before,.step.now::before{background:var(--gold)}

.scores{display:flex;gap:6px}
.scores button,.scores .sc{width:44px;height:44px;border-radius:6px;border:1.5px solid var(--border);background:var(--surface-alt);color:var(--sub);font-weight:700;font-size:15px;font-family:var(--sans);cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.scores .sel{background:var(--gold);border-color:var(--gold);color:#fff}
.score-hint{margin-top:8px;font-size:12px;color:var(--gold);font-weight:600;min-height:18px}

textarea{width:100%;min-height:80px;padding:10px 12px;border-radius:6px;border:1px solid var(--border);background:var(--surface-alt);font-size:13px;font-family:var(--sans);color:var(--ink);resize:vertical;line-height:1.7;outline:none}
textarea.filled{border-color:var(--gold)}
textarea:disabled{background:#F0EEE9;color:var(--sub)}

.lbl-sm{font-size:12px;color:var(--sub);font-weight:700;letter-spacing:.05em;margin-bottom:8px}
.hint{font-size:11px;color:var(--faint);line-height:1.6;margin-bottom:6px}

details.sample{margin-top:10px}
details.sample summary{padding:8px 12px;background:var(--surface-alt);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:12px;color:var(--sub);font-weight:600;list-style:none}
details.sample[open] summary{border-radius:6px 6px 0 0}
details.sample .sample-bd{padding:12px 14px;background:var(--gold-light);border:1px solid #D4B97A;border-top:none;border-radius:0 0 6px 6px;font-size:13px;line-height:1.7}
details.sample .sample-bd .s-hd{font-size:11px;color:var(--warn);font-weight:700;margin-bottom:6px}

.pillar-hd{padding:14px 16px;border-left:3px solid var(--gold);border-bottom:1px solid var(--border)}
.pillar-hd .num{font-size:12px;color:var(--gold);font-weight:700;letter-spacing:.05em;margin-bottom:2px}
.pillar-hd .name{font-size:14px;font-weight:700}
.pillar-hd .desc{font-size:12px;color:var(--sub);margin-top:4px;line-height:1.6}

.btn{display:block;width:100%;padding:16px 0;border:none;border-radius:8px;font-weight:700;font-size:15px;font-family:var(--sans);cursor:pointer;text-align:center}
.btn.primary{background:var(--ink);color:#fff}
.btn.disabled{background:var(--border);color:var(--faint);cursor:default}
.btn.gold{background:var(--gold);color:#fff}
.btn.ghost{background:var(--surface-alt);color:var(--sub);border:1px solid var(--border);padding:12px 0;font-size:13px}

.row{display:flex;align-items:center;gap:12px;padding:14px 16px;border-top:1px solid var(--border);background:var(--surface)}
.row:first-of-type{border-top:none}
.row .grow{flex:1;min-width:0}
.row .nm{font-size:14px;font-weight:700}
.row .meta{font-size:12px;color:var(--faint);margin-top:2px}
.row .arrow{color:var(--faint);font-size:18px}

.ans{background:var(--surface-alt);border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin-bottom:12px}
.ans .a-score{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.ans .a-score .n{font-size:22px;font-weight:800}
.ans .a-txt{font-size:13px;color:var(--sub);line-height:1.7}

.wip{padding:48px 20px;text-align:center}
.wip .mark{width:56px;height:56px;border-radius:50%;border:2px dashed var(--border);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-size:11px;color:var(--faint);font-weight:700}
.wip .t{font-size:15px;font-weight:700;margin-bottom:6px}
.wip .d{font-size:13px;color:var(--sub)}

.tabs{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:430px;background:var(--surface);border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(2,1fr);z-index:20;box-shadow:0 -2px 10px rgba(28,25,23,.08)}
.tabs a{padding:13px 4px 12px;border-top:2px solid transparent;font-size:12px;color:var(--faint);text-align:center}
.tabs a.on{border-top-color:var(--gold);color:var(--gold);font-weight:700}

.kv{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px;align-items:center}
.kv:last-child{border-bottom:none}
.kv .k{color:var(--sub)}
.kv .v{font-weight:600}

.tl-item{display:flex;gap:12px;padding:7px 0;align-items:flex-start}
.tl-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0;margin-top:3px;background:var(--surface);border:2px solid var(--border)}
.tl-dot.on{background:var(--gold);border-color:var(--gold)}
.tl-d{font-size:11px;color:var(--faint);font-weight:700}
.tl-d.on{color:var(--warn)}
.tl-l{font-size:13px;font-weight:500;color:var(--sub)}
.tl-l.on{font-weight:700;color:var(--ink)}

.note{font-size:12px;color:var(--faint);text-align:center;margin-top:8px}
.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mb12{margin-bottom:12px}

/* login */
.login-wrap{flex:1;display:flex;flex-direction:column;justify-content:center;padding:24px}
.login-logo{text-align:center;margin-bottom:36px}
.login-logo .b{font-family:var(--mincho);font-size:28px;font-weight:700;color:var(--ink)}
.login-logo .s{font-size:11px;color:var(--faint);letter-spacing:.2em;margin-top:6px}
input[type=text],input[type=password]{width:100%;padding:14px;border-radius:8px;border:1px solid var(--border);background:var(--surface);font-size:15px;font-family:var(--sans);outline:none;margin-bottom:10px}
input:focus{border-color:var(--gold)}
.hd .user{position:relative;margin-left:auto}.account-trigger{display:flex;align-items:center;gap:8px;max-width:210px;padding:4px 6px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:8px}.account-trigger:hover,.account-trigger:focus-visible{background:rgba(255,255,255,.12);outline:none}.account-avatar{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:#fff;color:#9b2c21;font-weight:800;box-shadow:0 0 0 2px rgba(255,255,255,.35)}.account-copy{min-width:0;display:flex;flex-direction:column}.account-copy .nm,.account-copy .st{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-chevron{font-size:16px}.account-menu{position:absolute;z-index:1000;top:calc(100% + 8px);right:0;width:210px;padding:8px;background:#fff;color:#222;border:1px solid #ddd;border-radius:10px;box-shadow:0 12px 32px rgba(0,0,0,.2)}.account-menu-info{display:flex;flex-direction:column;padding:8px 10px;border-bottom:1px solid #eee}.account-menu-info small{margin-top:3px;color:#777}.account-logout{width:100%;margin-top:6px;padding:11px;border:0;border-radius:7px;background:#fff;color:#a32218;font-weight:700;text-align:left;cursor:pointer}.account-logout:hover,.account-logout:focus-visible{background:#fff1ef;outline:none}.account-logout:disabled{opacity:.55}@media(max-width:480px){.account-copy{display:none}.account-trigger{gap:4px}.account-menu{right:-2px}}
.tabs:not(.common-tabs){visibility:hidden}.common-tabs{visibility:visible;grid-template-columns:repeat(3,1fr)!important}.common-tabs a{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:2px}.common-tabs a span{font-size:19px;line-height:1}

/* organization chart: existing portal colors only */
.org-chart-host{--org-page-bg:var(--bg);--org-surface:var(--surface);--org-surface-subtle:var(--surface-alt);--org-text:var(--ink);--org-muted:var(--sub);--org-border:var(--border);--org-line:var(--faint);--org-accent:var(--brand);--org-header-bg:var(--dark,#1c1917);--org-header-text:#fff;--org-shadow:var(--shadow,0 3px 10px rgba(28,25,23,.08));background:var(--org-surface);color:var(--org-text)}
.org-legend{padding:10px 14px;border-bottom:1px solid var(--org-border);font-size:12px;color:var(--org-muted)}.org-scroll{overflow:auto;-webkit-overflow-scrolling:touch;padding:24px 12px 58px;min-height:420px}.org-tree{display:flex;justify-content:center;width:max-content;min-width:100%;position:relative}.org-tree ul{display:flex;justify-content:center;align-items:flex-start;position:relative;margin:0;padding:0}.org-tree li{list-style:none;position:relative;text-align:center;padding:0 7px}.org-tree li>ul{padding-top:64px}.org-tree ul[hidden]{display:none!important}.org-person{width:148px;min-height:150px;margin-inline:auto;background:var(--org-surface);border:1px solid var(--org-border);border-radius:12px;padding:12px 9px 30px;box-shadow:var(--org-shadow);position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}.org-person.root{border-top:3px solid var(--org-accent)}.org-avatar{width:46px;height:46px;border-radius:50%;background:var(--org-surface-subtle);display:grid;place-items:center;font-size:12px;font-weight:800;margin-bottom:8px}.org-person.root .org-avatar{outline:2px solid var(--org-accent);outline-offset:1px}.org-person>b{font-size:13px;line-height:1.4;overflow-wrap:anywhere}.org-person>small{font-size:11px;color:var(--org-muted);line-height:1.4;margin-top:4px}.org-count{position:absolute;right:9px;bottom:8px;font-size:11px;color:var(--org-muted)}.org-toggle{position:absolute;left:50%;bottom:-22px;transform:translateX(-50%);width:44px;height:44px;border-radius:50%;border:1px solid var(--org-border);background:var(--org-surface);color:var(--org-text);font-size:17px;z-index:2}.org-leaf{position:absolute;left:50%;bottom:-10px;transform:translateX(-50%);color:var(--org-muted)}.org-connectors{position:absolute;inset:0;overflow:visible;pointer-events:none;z-index:0}.org-connectors path{fill:none;stroke:var(--org-line);stroke-width:1;vector-effect:non-scaling-stroke}.org-state{min-height:360px;display:grid;place-items:center;padding:28px;text-align:center;color:var(--org-muted)}.org-state[hidden]{display:none!important}.org-error b,.org-error span{display:block;margin-bottom:10px}.org-error button{min-width:130px;min-height:44px;border:1px solid var(--org-border);border-radius:9px;background:var(--org-surface);color:var(--org-text)}.org-skeleton{display:grid;justify-items:center;gap:28px}.org-skeleton i{display:block;width:148px;height:150px;border-radius:12px;background:var(--org-surface-subtle);border:1px solid var(--org-border)}.org-skeleton div{display:flex;gap:10px}.org-skeleton div i{width:112px;height:125px}@media(max-width:430px){.org-scroll{padding-left:5px;padding-right:5px}.org-person{width:132px}.org-tree li{padding-left:4px;padding-right:4px}.org-person>b{font-size:12px}.org-person>small{font-size:10px}}
.org-legend{text-align:center}.org-tree{margin-inline:auto}.org-tree>ul{margin-inline:auto}

/* 2026 portal redesign */
:root{--brand:#8f241d;--brand-dark:#651611;--brand-soft:#f8ebe8;--gold:#b68a32;--ink:#27211f;--sub:#706763;--border:#e8e0d8;--bg:#f5f1ec;--surface:#fff;--shadow:0 10px 30px rgba(63,42,30,.08)}
html,body{background:#eee9e3}
body{min-width:320px}
.app{max-width:1180px;background:var(--bg);box-shadow:0 0 50px rgba(55,38,29,.12)}
.hd{min-height:72px;padding:14px clamp(18px,4vw,46px);background:linear-gradient(120deg,#251c19 0%,#171312 65%,#421512 140%);border-bottom:3px solid var(--brand)}
.hd .brand{font-size:22px;letter-spacing:.12em}.hd .tagline{color:rgba(255,255,255,.5);letter-spacing:.22em}
.pt{padding:22px clamp(18px,4vw,46px) 18px;background:rgba(255,255,255,.92)}
.pt h1{font-family:var(--sans);font-size:25px;letter-spacing:.02em}.pt .crumb{text-transform:uppercase;letter-spacing:.14em;color:var(--brand);font-weight:700}
main{width:100%;padding:24px clamp(18px,4vw,46px) 110px}
.card{border:1px solid rgba(116,85,66,.14);border-radius:16px;box-shadow:0 4px 18px rgba(61,42,30,.045)}
.card-hd{padding:17px 20px;border-left:0;border-bottom:1px solid var(--border)}.card-hd .t{font-size:16px}.card-bd{padding:20px}
.btn{border-radius:10px;background:var(--ink);color:#fff;transition:.18s ease;min-height:48px}.btn:hover{filter:brightness(1.07);transform:translateY(-1px)}.btn.gold{background:linear-gradient(135deg,var(--brand),#ad3b2d)}.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--border)}
.note{line-height:1.7}.alert{border-radius:12px}
.tabs{max-width:1180px;min-height:70px}.common-tabs a{font-size:12px;font-weight:700;gap:4px!important}.common-tabs a span{font-size:21px!important}.common-tabs a.on{color:var(--brand);border-top-color:var(--brand)}
.dashboard-shell{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:20px}
.dashboard-main,.dashboard-side{min-width:0}
.portal-hero{position:relative;overflow:hidden;padding:26px;border-radius:18px;color:#fff;background:linear-gradient(135deg,#7b201a,#a83a2d 58%,#c68d39);box-shadow:0 14px 34px rgba(116,35,27,.19);margin-bottom:20px}
.portal-hero:after{content:"";position:absolute;width:260px;height:260px;border:55px solid rgba(255,255,255,.08);border-radius:50%;right:-110px;top:-100px}.hero-eyebrow{font-size:12px;font-weight:700;letter-spacing:.14em;opacity:.8}.portal-hero h2{font-size:24px;margin:8px 0 4px}.hero-meta{font-size:13px;opacity:.85}.hero-progress{position:relative;z-index:1;margin-top:23px}.progress-label{display:flex;justify-content:space-between;font-size:12px;font-weight:700;margin-bottom:7px}.progress-track{height:9px;border-radius:20px;background:rgba(255,255,255,.24);overflow:hidden}.progress-bar{height:100%;border-radius:inherit;background:#fff}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.kpi{background:#fff;border:1px solid var(--border);border-radius:14px;padding:17px}.kpi-label{font-size:11px;color:var(--sub);font-weight:700}.kpi-value{font-size:30px;font-weight:800;line-height:1.2;margin:5px 0}.kpi-foot{font-size:11px;color:var(--faint)}.kpi.accent .kpi-value{color:var(--brand)}
.section-title{font-size:17px;margin:0 0 12px}.action-list{display:grid;gap:10px}.action-row{display:flex;align-items:center;gap:14px;padding:15px 16px;background:#fff;border:1px solid var(--border);border-radius:12px}.action-icon,.feature-icon,.tool-icon{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border-radius:11px;background:var(--brand-soft);color:var(--brand);font-size:19px;font-weight:800}.action-copy{flex:1;min-width:0}.action-copy b{display:block;font-size:14px}.action-copy small{display:block;color:var(--sub);margin-top:2px}.action-arrow{color:var(--brand);font-size:20px}
.scope-group+.scope-group{border-top:1px solid var(--border)}.scope-label{padding:12px 20px;background:var(--bg);color:var(--sub);font-size:14px;font-weight:700}
.feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.feature-card{display:flex;flex-direction:column;padding:24px;background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 5px 18px rgba(61,42,30,.05)}.feature-card h2{font-size:19px;margin:14px 0 6px}.feature-card p{color:var(--sub);font-size:13px;line-height:1.7;margin-bottom:20px}.feature-card .btn{margin-top:auto}.feature-card.primary-feature{border-top:4px solid var(--brand)}
.profile-head{display:flex;align-items:center;gap:16px}.profile-avatar{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;background:linear-gradient(135deg,var(--brand),#c35d42);color:#fff;font-size:24px;font-weight:800}.profile-title b{font-size:20px}.profile-title small{display:block;color:var(--sub);margin-top:4px}.profile-grid{grid-template-columns:145px 1fr!important;gap:0!important}.profile-grid dt,.profile-grid dd{padding:10px 0;border-bottom:1px solid #f0ebe6}.settings-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:20px}.settings-links{grid-template-columns:repeat(2,minmax(0,1fr))}.tool-link{display:flex!important;align-items:center;gap:11px;text-align:left!important;padding:14px!important}.tool-link strong{display:block}.tool-link small{display:block;color:var(--sub);font-weight:400;margin-top:2px}
.field,input.field,select.field,.pw-field,.approval-field{min-height:45px;border-radius:9px!important;border:1px solid var(--border)!important;padding:11px 12px!important;background:#fff;font-family:var(--sans)}
.modal-backdrop{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:18px;background:rgba(25,18,16,.68);backdrop-filter:blur(4px)}.modal-backdrop[hidden]{display:none}.modal{width:min(640px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 30px 90px rgba(0,0,0,.3)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;border-bottom:1px solid var(--border)}.modal-head h2{font-size:19px}.modal-close{border:0;background:#f3efeb;width:36px;height:36px;border-radius:50%;font-size:20px;cursor:pointer}.modal-body{padding:22px}.modal-actions{display:flex;gap:10px;margin-top:18px}.modal-actions>*{flex:1}
.admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.admin-toolbar input{max-width:360px;margin:0}.account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px}.account{border:1px solid var(--border)!important;border-radius:13px;background:#fff;padding:17px!important}.actions{flex-wrap:wrap}.actions button{min-height:38px;border-radius:8px!important;cursor:pointer}.tree{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.tree-node,.tree-node.child{margin:0!important;margin-left:0!important}.tree-node.child{border-left-color:var(--gold)!important}
@media(max-width:760px){html,body{background:var(--bg)}.app{max-width:none;box-shadow:none}.hd{min-height:64px;padding:12px 18px}.hd .brand{font-size:19px}.pt{padding:15px 18px 13px}.pt h1{font-size:20px}main{padding:16px 14px 96px}.dashboard-shell,.settings-layout{display:block}.dashboard-side{margin-top:18px}.portal-hero{padding:21px}.portal-hero h2{font-size:20px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.kpi-value{font-size:25px}.feature-grid{grid-template-columns:1fr}.feature-card{padding:19px}.profile-grid{grid-template-columns:105px 1fr!important}.settings-links{grid-template-columns:1fr}.account-grid{grid-template-columns:1fr;padding:10px}.tree{grid-template-columns:1fr}.grid{grid-template-columns:1fr}.admin-toolbar{align-items:stretch;flex-direction:column}.admin-toolbar input{max-width:none}.tabs{max-width:none}.modal-actions{flex-direction:column-reverse}}
