@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-light:300;--font-weight-medium:500;--leading-relaxed:1.625;--radius-md:.375rem;--radius-2xl:1rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.min-h-screen{min-height:100vh}.w-full{width:100%}.max-w-md{max-width:var(--container-md)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-col{flex-direction:column}.items-baseline{align-items:baseline}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.p-3{padding:calc(var(--spacing) * 3)}.p-8{padding:calc(var(--spacing) * 8)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.break-all{word-break:break-all}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}}:root{--primary:#00acc1;--primary-dark:#00838f;--primary-bright:#26c6da;--primary-soft:#e0f7fa;--accent:#ff7043;--accent-soft:#ffe0d2;--success:#43a047;--success-soft:#e8f5e9;--warn:#f57c00;--warn-soft:#ffe0b2;--info:#5c6bc0;--info-soft:#e8eaf6;--purple:#8e24aa;--purple-soft:#f3e5f5;--danger:#e53935;--text-dark:#0f1b26;--text:#2a3540;--text-muted:#6b7c8c;--text-faint:#a8b4bd;--line:#e8ecef;--line-soft:#f1f4f6;--bg:#f5f8fa;--bg-card:#fff}html,body{height:100%;margin:0;padding:0}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Noto Sans JP,-apple-system,BlinkMacSystemFont,sans-serif;font-size:13px;line-height:1.5}*{box-sizing:border-box}button{cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}.mi.fill{font-variation-settings:"FILL" 1, "wght" 500, "GRAD" 0, "opsz" 24}.app{grid-template-rows:64px 1fr;grid-template-areas:"header""main";height:100vh;min-height:720px;display:grid}.app.with-subnav{grid-template-rows:64px 48px 1fr;grid-template-areas:"header""subnav""main"}.h{border-bottom:1px solid var(--line);background:#fff;grid-area:header;align-items:center;gap:32px;padding:0 28px;display:flex}.h-logo{border-right:1px solid var(--line);flex-shrink:0;align-items:center;gap:12px;height:44px;padding-right:18px;display:flex}.h-logo .brand-logo{width:auto;height:38px;display:block}.h-logo .role-chip{color:var(--primary-dark);background:var(--primary-soft);letter-spacing:1.5px;white-space:nowrap;border-radius:6px;padding:4px 8px;font-size:9px;font-weight:700}.h-nav{flex:1;align-items:center;gap:6px;height:100%;display:flex}.h-link{height:100%;color:var(--text-muted);cursor:pointer;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:500;transition:color .15s;display:flex;position:relative}.h-link:hover{color:var(--text-dark)}.h-link .mi{font-size:20px}.h-link.active{color:var(--primary-dark);font-weight:700}.h-link.active .mi{color:var(--primary);font-variation-settings:"FILL" 1, "wght" 500}.h-link.active:after{content:"";background:var(--primary);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:-1px;left:14px;right:14px}.h-link .pip{background:var(--accent);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:700;display:flex}.h-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.h-icon{width:38px;height:38px;color:var(--text-muted);border-radius:10px;justify-content:center;align-items:center;display:flex;position:relative}.h-icon:hover{background:var(--bg);color:var(--text-dark)}.h-icon .mi{font-size:22px}.h-icon .dot{background:var(--accent);border:2px solid #fff;border-radius:50%;width:8px;height:8px;position:absolute;top:8px;right:9px}.h-user{background:var(--bg);cursor:pointer;border-radius:999px;align-items:center;gap:8px;margin-left:4px;padding:4px 10px 4px 6px;display:flex;position:relative}.h-user .av{color:#fff;background:linear-gradient(135deg,#ffab91,#ff7043);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:12px;font-weight:700;display:flex}.h-user .av.instructor{background:linear-gradient(135deg,#90caf9,#42a5f5)}.h-user .av.admin{background:linear-gradient(135deg,#b39ddb,#7e57c2)}.h-user .name{color:var(--text-dark);font-size:12px;font-weight:500}.h-user .mi{color:var(--text-muted);font-size:18px}.role-switch{background:var(--bg);border:1px dashed var(--text-faint);border-radius:8px;gap:2px;margin-right:8px;padding:3px;display:flex}.role-switch .r{color:var(--text-muted);border-radius:6px;align-items:center;gap:4px;padding:5px 10px;font-size:11px;font-weight:500;display:flex}.role-switch .r .mi{font-size:14px}.role-switch .r.active{color:var(--text-dark);background:#fff;font-weight:700;box-shadow:0 1px 3px #0000000f}.subnav{border-bottom:1px solid var(--line);background:#fff;grid-area:subnav;align-items:center;gap:8px;padding:0 28px;display:flex}.crumb{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.crumb .mi{font-size:14px}.crumb b{color:var(--text-dark);font-weight:600}.main{grid-area:main;padding:28px 36px 60px;overflow-y:auto}.main::-webkit-scrollbar{width:10px}.main::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.main::-webkit-scrollbar-track{background:0 0}.page-head{justify-content:space-between;align-items:flex-end;margin-bottom:22px;display:flex}.page-head h1{color:var(--text-dark);letter-spacing:-.3px;margin:0;font-size:24px;font-weight:700}.page-head .sub{color:var(--text-muted);align-items:center;gap:6px;margin-top:6px;font-size:12px;display:flex}.page-head .sub .mi{font-size:14px}.page-head-right{align-items:center;gap:10px;display:flex}.btn{border:1px solid var(--line);color:var(--text);cursor:pointer;background:#fff;border-radius:9px;align-items:center;gap:6px;padding:8px 14px;font-size:12px;font-weight:500;display:inline-flex}.btn:hover{border-color:var(--text-muted)}.btn.primary{background:linear-gradient(135deg, var(--primary), var(--primary-bright));color:#fff;border-color:#0000;box-shadow:0 2px 6px #00acc140}.btn.outline{background:0 0}.btn.ghost{background:0 0;border:none}.btn.danger{color:var(--danger)}.btn.big{padding:12px 22px;font-size:13px;font-weight:700}.btn .mi{font-size:18px}.tag{background:var(--line-soft);color:var(--text-muted);border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:500;display:inline-flex}.tag .mi{font-size:13px}.tag.ok{background:var(--success-soft);color:var(--success)}.tag.new{background:var(--primary-soft);color:var(--primary-dark)}.tag.warn{background:var(--warn-soft);color:var(--warn)}.tag.acc{background:var(--accent-soft);color:var(--accent)}.tag.info{background:var(--info-soft);color:var(--info)}.tag.danger{color:var(--danger);background:#ffebee}.card{border:1px solid var(--line);background:#fff;border-radius:14px}.card-head{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.card-head .ttl{color:var(--text-dark);align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.card-head .ttl .mi{color:var(--primary);font-size:18px}.card-head .right{color:var(--text-muted);align-items:center;gap:8px;font-size:12px;display:flex}.card-body{padding:18px 20px}.pbar{background:var(--line-soft);border-radius:4px;height:6px;overflow:hidden}.pbar>span{background:linear-gradient(90deg, var(--primary), var(--primary-bright));border-radius:4px;height:100%;display:block}.pbar.thin{height:4px}.pbar.warn>span{background:linear-gradient(90deg,#ffb74d,#fb8c00)}.pbar.success>span{background:linear-gradient(90deg,#66bb6a,#43a047)}.pbar.danger>span{background:linear-gradient(90deg,#ef5350,#c62828)}.avatar{color:#fff;background:linear-gradient(135deg,#ffab91,#ff7043);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.kpi-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px;display:grid}.kpi{border:1px solid var(--line);background:#fff;border-radius:14px;align-items:center;gap:16px;padding:18px 20px;display:flex}.kpi .ic{background:var(--primary-soft);width:48px;height:48px;color:var(--primary-dark);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.kpi .ic .mi{font-size:28px}.kpi.acc .ic{background:var(--accent-soft);color:var(--accent)}.kpi.warn .ic{background:var(--warn-soft);color:var(--warn)}.kpi.success .ic{background:var(--success-soft);color:var(--success)}.kpi.info .ic{background:var(--info-soft);color:var(--info)}.kpi.purple .ic{background:var(--purple-soft);color:var(--purple)}.kpi .v{color:var(--text-dark);font-size:28px;font-weight:700;line-height:1}.kpi .v .u{color:var(--text-muted);margin-left:4px;font-size:12px;font-weight:500}.kpi .l{color:var(--text-muted);margin-top:6px;font-size:11px}.kpi .delta{align-items:center;gap:2px;margin-top:3px;font-size:11px;font-weight:700;display:inline-flex}.kpi .delta.up{color:var(--success)}.kpi .delta.down{color:var(--danger)}.kpi .delta .mi{font-size:12px}.lrow{border-bottom:1px solid var(--line-soft);align-items:center;gap:14px;padding:12px 0;display:flex}.lrow:last-child{border-bottom:none}.lrow .ic{background:var(--bg);width:36px;height:36px;color:var(--text-muted);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.lrow .ic .mi{font-size:20px}.lrow .ic.primary{background:var(--primary-soft);color:var(--primary-dark)}.lrow .ic.acc{background:var(--accent-soft);color:var(--accent)}.lrow .ic.success{background:var(--success-soft);color:var(--success)}.lrow .ic.warn{background:var(--warn-soft);color:var(--warn)}.lrow .ic.info{background:var(--info-soft);color:var(--info)}.lrow .body{flex:1;min-width:0}.lrow .body .t{color:var(--text-dark);font-size:13px;font-weight:500}.lrow .body .m{color:var(--text-muted);align-items:center;gap:10px;margin-top:2px;font-size:11px;display:flex}.grid-2{grid-template-columns:1fr 1fr;gap:18px;display:grid}.grid-2-1{grid-template-columns:2fr 1fr;gap:18px;display:grid}.course-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.course-card{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:14px;transition:all .15s;overflow:hidden}.course-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #14283c0f}.course-card .banner{color:#fff;background:linear-gradient(135deg,#006064,#00acc1);align-items:center;height:60px;padding:12px 16px;display:flex;position:relative}.course-card .banner.c-ux{background:linear-gradient(135deg,#bf360c,#ff7043)}.course-card .banner.c-data{background:linear-gradient(135deg,#4527a0,#7e57c2)}.course-card .banner.c-locked{background:linear-gradient(135deg,#455a64,#78909c)}.course-card .banner .ic{background:#ffffff2e;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.course-card .banner .ic .mi{font-size:22px}.course-card .banner .badge-right{background:#fff3;border-radius:999px;margin-left:auto;padding:3px 8px;font-size:10px;font-weight:600}.course-card .body{padding:14px 18px 12px}.course-card .body h3{color:var(--text-dark);margin:0 0 4px;font-size:15px;font-weight:700}.course-card .body .cat{color:var(--text-muted);margin-bottom:10px;font-size:11px}.course-card .body .pwrap{align-items:center;gap:10px;margin-bottom:4px;display:flex}.course-card .body .pwrap .pbar{flex:1}.course-card .body .pwrap .pct{color:var(--primary-dark);font-size:12px;font-weight:700}.course-card .body .next{color:var(--text-muted);align-items:center;gap:5px;font-size:11px;display:flex}.course-card .body .next b{color:var(--text-dark);font-weight:500}.course-card .foot{background:var(--bg);border-top:1px solid var(--line);color:var(--text-muted);justify-content:space-between;align-items:center;padding:10px 18px;font-size:11px;display:flex}.course-card .foot .play{color:var(--primary-dark);align-items:center;gap:4px;font-weight:600;display:flex}.course-card.locked{opacity:.6;cursor:not-allowed}.cd-hero{color:#fff;background:linear-gradient(135deg,#006064 0%,#00acc1 100%);border-radius:16px;grid-template-columns:1fr auto;align-items:center;gap:24px;margin-bottom:22px;padding:24px 28px;display:grid;position:relative;overflow:hidden}.cd-hero:after{content:"";background:#ffffff12;border-radius:50%;width:220px;height:220px;position:absolute;bottom:-60px;right:-60px}.cd-hero .cat{opacity:.85;letter-spacing:2px;align-items:center;gap:6px;margin-bottom:8px;font-size:11px;font-weight:700;display:flex}.cd-hero h1{letter-spacing:-.3px;z-index:1;margin:0 0 8px;font-size:26px;font-weight:700;position:relative}.cd-hero .meta{opacity:.9;z-index:1;gap:18px;font-size:12px;display:flex;position:relative}.cd-hero .meta span{align-items:center;gap:5px;display:inline-flex}.cd-hero .meta .mi{font-size:15px}.cd-hero .progress-block{text-align:right;z-index:1;position:relative}.cd-hero .big-num{letter-spacing:-2px;font-size:50px;font-weight:900;line-height:1}.cd-hero .big-num .u{opacity:.8;font-size:16px;font-weight:500}.cd-hero .lbl{opacity:.8;letter-spacing:1.5px;margin-top:4px;font-size:10px;font-weight:700}.cd-hero .pbar{background:#fff3;width:180px;margin-top:6px}.cd-hero .pbar>span{background:#fff}.cd-grid{grid-template-columns:1fr 320px;align-items:start;gap:20px;display:grid}.continue{background:linear-gradient(135deg,#fff8f2,#ffe0d2);border:1px solid #ffd8b8;border-radius:14px;align-items:center;gap:16px;margin-bottom:18px;padding:16px 20px;display:flex}.continue .ic{background:linear-gradient(135deg, var(--accent), #ff8a65);color:#fff;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.continue .ic .mi{font-size:30px}.continue .body{flex:1;min-width:0}.continue .eyebrow{color:var(--accent);letter-spacing:1.5px;font-size:10px;font-weight:700}.continue .ttl{color:var(--text-dark);margin:3px 0;font-size:15px;font-weight:700}.continue .m{color:var(--text-muted);font-size:12px}.sprint{border:1px solid var(--line);background:#fff;border-radius:12px;margin-bottom:10px;overflow:hidden}.sprint-head{cursor:pointer;align-items:center;gap:14px;padding:14px 18px;display:flex}.sprint-head.locked{cursor:not-allowed;opacity:.5}.sprint-head .num{background:var(--line-soft);width:38px;height:38px;color:var(--text-muted);border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.sprint.done .num{background:var(--success-soft);color:var(--success)}.sprint.done .num .mi{font-size:22px}.sprint.active .num{background:linear-gradient(135deg, var(--primary), var(--primary-bright));color:#fff}.sprint-head .body{flex:1;min-width:0}.sprint-head .body .title{color:var(--text-dark);font-size:14px;font-weight:600}.sprint-head .body .meta{color:var(--text-muted);gap:10px;margin-top:3px;font-size:11px;display:flex}.sprint-body{border-top:1px solid var(--line-soft);padding:4px 18px 12px 70px}.lesson{border-bottom:1px solid var(--line-soft);align-items:center;gap:14px;padding:12px 0;display:flex}.lesson:last-child{border-bottom:none}.lesson .check{border:2px solid var(--line);background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.lesson.done .check{background:var(--success);border-color:var(--success);color:#fff}.lesson.done .check .mi{font-size:16px}.lesson.now .check{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 0 4px #ff70432e}.lesson.now .check .mi{font-size:14px}.lesson.locked .check{background:var(--bg);border-style:dashed}.lesson.locked .check .mi{color:var(--text-faint);font-size:14px}.lesson .ic{background:var(--bg);width:30px;height:30px;color:var(--text-muted);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.lesson .ic .mi{font-size:18px}.lesson .body{flex:1;min-width:0}.lesson .body .t{color:var(--text-dark);font-size:13px;font-weight:500}.lesson.done .body .t{color:var(--text-muted)}.lesson.locked .body .t{color:var(--text-faint)}.lesson.now .body .t{font-weight:700}.lesson .body .m{color:var(--text-muted);margin-top:2px;font-size:11px}.lesson .right{color:var(--text-muted);flex-shrink:0;align-items:center;gap:8px;font-size:11px;display:flex}.form-row{margin-bottom:18px}.form-label{color:var(--text-dark);margin-bottom:6px;font-size:12px;font-weight:700;display:block}.form-input,.form-textarea,.form-select{border:1px solid var(--line);width:100%;color:var(--text);background:#fff;border-radius:8px;padding:10px 12px;font-family:inherit;font-size:13px}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #00acc11f}.form-textarea{resize:vertical;min-height:150px;line-height:1.6}.form-help{color:var(--text-muted);margin-top:4px;font-size:11px;display:block}.file-drop{border:2px dashed var(--line);text-align:center;color:var(--text-muted);background:var(--bg);border-radius:10px;padding:24px}.file-drop:hover{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-dark)}.file-drop .mi{font-size:28px}.file-drop .t{color:var(--text-dark);margin-top:4px;font-size:13px;font-weight:600}.file-drop .m{margin-top:2px;font-size:11px}.file-item{background:var(--bg);border-radius:8px;align-items:center;gap:10px;margin-top:8px;padding:10px 12px;display:flex}.file-item .ic{background:var(--info-soft);width:32px;height:32px;color:var(--info);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.file-item .ic .mi{font-size:18px}.file-item .body{flex:1;min-width:0}.file-item .body .n{color:var(--text-dark);font-size:12px;font-weight:500}.file-item .body .s{color:var(--text-muted);margin-top:1px;font-size:10px}.grade-layout{grid-template-columns:280px 1fr;align-items:start;gap:18px;display:grid}.grade-queue{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;max-height:720px;display:flex;overflow:hidden}.grade-queue .head{border-bottom:1px solid var(--line-soft);color:var(--text-dark);align-items:center;gap:6px;padding:12px 16px;font-size:12px;font-weight:700;display:flex}.grade-queue .head .mi{color:var(--primary)}.grade-queue .list{flex:1;overflow-y:auto}.grade-queue .item{border-bottom:1px solid var(--line-soft);cursor:pointer;align-items:center;gap:10px;padding:12px 16px;display:flex}.grade-queue .item:hover{background:var(--bg)}.grade-queue .item.active{background:var(--primary-soft);border-left:3px solid var(--primary);padding-left:13px}.grade-queue .item .av{width:30px;height:30px;font-size:11px}.grade-queue .item .body{flex:1;min-width:0}.grade-queue .item .body .t{color:var(--text-dark);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.grade-queue .item .body .m{color:var(--text-muted);margin-top:1px;font-size:10px}.grade-queue .item .badge{flex-shrink:0}.grade-detail{grid-template-columns:1fr 320px;align-items:start;gap:16px;display:grid}.stuck-card{border:1px solid var(--line);background:#fff;border-radius:12px;grid-template-columns:280px 1fr auto;align-items:center;gap:16px;margin-bottom:12px;padding:16px 18px;display:grid}.stuck-card.warn{background:linear-gradient(135deg,#fffaf5,#fff);border-color:#ffd8b8}.stuck-card.danger{background:linear-gradient(135deg,#ffebee,#fff);border-color:#ffcdd2}.stuck-card .student{align-items:center;gap:10px;display:flex}.stuck-card .student .av{width:40px;height:40px;font-size:14px}.stuck-card .student .info .n{color:var(--text-dark);font-size:13px;font-weight:700}.stuck-card .student .info .e{color:var(--text-muted);margin-top:1px;font-size:11px}.stuck-card .reason{flex-direction:column;gap:4px;display:flex}.stuck-card .reason .label{color:var(--text-muted);letter-spacing:1px;font-size:10px;font-weight:700}.stuck-card .reason .why{color:var(--text-dark);font-size:13px;line-height:1.5}.stuck-card .reason .why b{color:var(--danger)}.stuck-card .reason .stats{color:var(--text-muted);gap:14px;margin-top:4px;font-size:11px;display:flex}.stuck-card .reason .stats b{color:var(--text-dark);font-weight:700}.stuck-card .actions{flex-direction:column;gap:6px;display:flex}.t-table{border-collapse:collapse;width:100%;font-size:12px}.t-table thead th{text-align:left;color:var(--text-muted);letter-spacing:.8px;text-transform:uppercase;background:var(--bg);border-bottom:1px solid var(--line);padding:12px 16px;font-size:10px;font-weight:700}.t-table tbody td{border-bottom:1px solid var(--line-soft);vertical-align:middle;padding:12px 16px}.t-table tbody tr:last-child td{border-bottom:none}.t-table tbody tr:hover{background:var(--bg)}.t-student{align-items:center;gap:10px;display:flex}.t-student .av{flex-shrink:0;width:32px;height:32px;font-size:12px}.t-student .info .n{color:var(--text-dark);font-size:12px;font-weight:600}.t-student .info .e{color:var(--text-muted);margin-top:1px;font-size:10px}.t-progress{align-items:center;gap:8px;min-width:140px;display:flex}.t-progress .pbar{flex:1;min-width:60px}.t-progress .pct{color:var(--text-dark);text-align:right;width:32px;font-size:11px;font-weight:700}.radar-box svg{width:100%;max-width:260px;height:auto;margin:0 auto;display:block}.skill-radar-grid{fill:#00acc10a;stroke:var(--line);stroke-width:1px}.skill-radar-axis{stroke:var(--line);stroke-width:1px}.skill-radar-area{fill:#00acc140;stroke:var(--primary);stroke-width:2px}.skill-radar-dot{fill:var(--primary-dark)}.skill-radar-label{fill:var(--text-dark);text-anchor:middle;font-family:Noto Sans JP,sans-serif;font-size:11px;font-weight:700}.skill-radar-value{fill:var(--primary-dark);text-anchor:middle;font-family:Noto Sans JP,sans-serif;font-size:10px;font-weight:700}.badge-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.achv{border:1px solid var(--line);text-align:center;background:#fff;border-radius:10px;padding:14px 8px}.achv .ring{background:linear-gradient(135deg, var(--accent), #ffab91);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;margin:0 auto 6px;display:flex}.achv .ring .mi{font-size:24px}.achv.locked .ring{background:var(--line-soft);color:var(--text-faint)}.achv .nm{color:var(--text-dark);font-size:11px;font-weight:600;line-height:1.3}.achv .dt{color:var(--text-muted);margin-top:3px;font-size:9px}.achv.locked .nm{color:var(--text-faint)}.notif-row{border-bottom:1px solid var(--line-soft);align-items:flex-start;gap:10px;padding:12px 0;display:flex}.notif-row:last-child{border-bottom:none}.notif-row .ic{background:var(--bg);width:32px;height:32px;color:var(--text-muted);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.notif-row .ic .mi{font-size:18px}.notif-row.unread .ic{background:var(--accent-soft);color:var(--accent)}.notif-row .body{flex:1;min-width:0}.notif-row .body .t{color:var(--text-dark);font-size:12px;line-height:1.5}.notif-row.unread .body .t{font-weight:600}.notif-row .body .m{color:var(--text-muted);margin-top:3px;font-size:10px}.login-stage{background:linear-gradient(135deg,#f5f8fa 0%,#e6f0f3 100%);justify-content:center;align-items:center;width:100%;height:100vh;min-height:720px;display:flex;position:relative;overflow:hidden}.login-bg{pointer-events:none;position:absolute;inset:0}.bg-circle{background:linear-gradient(135deg,#00acc12e,#26c6da0d);border-radius:50%;position:absolute}.bg-circle.c1{width:480px;height:480px;top:-120px;left:-120px}.bg-circle.c2{background:linear-gradient(135deg,#ff70432e,#ff70430a);width:360px;height:360px;bottom:-100px;right:-80px}.bg-circle.c3{background:linear-gradient(135deg,#8e24aa14,#8e24aa05);width:240px;height:240px;top:40%;right:20%}.login-card{z-index:1;background:#fff;border-radius:24px;grid-template-columns:380px 1fr;width:920px;max-width:calc(100vw - 48px);min-height:580px;display:grid;position:relative;overflow:hidden;box-shadow:0 24px 64px #0f1b262e}.login-brand{color:#fff;background:linear-gradient(135deg,#00838f 0%,#006064 100%);flex-direction:column;padding:40px 36px;display:flex;position:relative}.login-brand:after{content:"";background:#ffffff12;border-radius:50%;width:280px;height:280px;position:absolute;bottom:-80px;right:-80px}.login-logo{filter:brightness(0)invert();width:auto;height:44px;margin-bottom:8px}.login-brand-tag{opacity:.85;letter-spacing:1px;margin-bottom:36px;font-size:12px}.login-brand-body{z-index:1;flex-direction:column;flex:1;gap:20px;display:flex;position:relative}.login-bullet{gap:14px;display:flex}.login-bullet .mi{color:#fff;background:#ffffff24;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:22px;display:inline-flex}.login-bullet .t{font-size:13px;font-weight:700}.login-bullet .m{opacity:.8;margin-top:3px;font-size:11px}.login-brand-foot{opacity:.6;z-index:1;margin-top:24px;font-size:10px;position:relative}.login-form-pane{flex-direction:column;justify-content:center;padding:48px 56px;display:flex}.login-title{color:var(--text-dark);letter-spacing:-.3px;margin:0 0 6px;font-size:26px;font-weight:700}.login-sub{color:var(--text-muted);margin-bottom:24px;font-size:13px}.login-link{color:var(--primary-dark);cursor:pointer;font-size:11px;font-weight:600}.login-link:hover{text-decoration:underline}.login-role-switch{background:var(--bg);border-radius:12px;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-bottom:22px;padding:5px;display:grid}.role-tab{cursor:pointer;color:var(--text-muted);background:0 0;border-radius:8px;align-items:center;gap:8px;padding:10px;display:flex}.role-tab .mi{flex-shrink:0;font-size:22px}.role-tab .t{color:var(--text-dark);font-size:12px;font-weight:600}.role-tab .m{color:var(--text-muted);margin-top:1px;font-size:10px}.role-tab.active{background:#fff;box-shadow:0 2px 6px #0000000f}.role-tab.active .mi{color:var(--primary)}.input-with-ic{align-items:center;display:flex;position:relative}.input-with-ic .form-input{padding-left:42px;padding-right:38px}.input-with-ic>.mi{color:var(--text-muted);pointer-events:none;z-index:1;font-size:20px;position:absolute;left:12px}.input-with-ic .input-tail{width:28px;height:28px;color:var(--text-muted);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex;position:absolute;right:6px}.input-with-ic .input-tail:hover{background:var(--bg)}.login-divider{align-items:center;gap:12px;margin:18px 0;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--line);flex:1;height:1px}.login-divider span{color:var(--text-muted);font-size:11px;font-weight:500}.login-foot{text-align:center;color:var(--text-muted);margin-top:22px;font-size:12px}.pw-strength{align-items:center;gap:10px;display:flex}.pw-bar{background:var(--line-soft);border-radius:4px;flex:1;height:4px;overflow:hidden}.pw-bar>span{border-radius:4px;height:100%;display:block}.pw-strength-lbl{color:var(--success);font-size:11px;font-weight:700}.oauth-row{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.oauth-btn{white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:10px 8px;font-size:12px;font-weight:500;display:flex}.oauth-btn svg{flex-shrink:0}.kpi.clickable{cursor:pointer;transition:all .15s;position:relative}.kpi.clickable:hover{border-color:var(--text-muted);transform:translateY(-2px);box-shadow:0 8px 20px #14283c14}.kpi.clickable:after{content:"chevron_right";color:var(--text-faint);opacity:0;font-family:Material Symbols Outlined;font-size:20px;transition:opacity .15s;position:absolute;top:12px;right:12px}.kpi.clickable:hover:after{opacity:1}.login-form-pane .form-input{border-radius:10px;padding:12px;font-size:13px}.login-form-pane .input-with-ic .form-input{padding-left:44px;padding-right:40px}.spacer-32{height:32px}.slack-mark{background:radial-gradient(circle at 30% 30%,#e01e5a 0 18%,#0000 19%),radial-gradient(circle at 70% 30%,#ecb22e 0 18%,#0000 19%),radial-gradient(circle at 30% 70%,#2eb67d 0 18%,#0000 19%),radial-gradient(circle at 70% 70%,#36c5f0 0 18%,#0000 19%);flex-shrink:0;width:14px;height:14px;display:inline-block}.slack-btn{color:#4a154b;background:#fff;border:1px solid #4a154b;align-items:center;gap:6px;font-weight:600;text-decoration:none;display:inline-flex}.slack-btn:hover{color:#fff;background:#4a154b}.slack-btn.primary{color:#fff;background:#4a154b;border-color:#0000}.slack-btn.primary:hover{background:#611f69}.slack-unread{background:var(--accent);color:#fff;border-radius:999px;margin-left:2px;padding:1px 6px;font-size:10px;font-weight:700}.slack-icon-btn{border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.slack-icon-btn:hover{background:var(--bg)}.h-slack{color:#4a154b;background:#f9f4fa;border:1px solid #ead5ec;border-radius:9px;align-items:center;gap:8px;margin-right:4px;padding:6px 12px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.h-slack:hover{color:#fff;background:#4a154b;border-color:#4a154b}.h-slack-pip{background:var(--accent);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:700;display:inline-flex}.slack-shell{border:1px solid var(--line);background:#fff;border-radius:14px;grid-template-columns:240px 1fr;height:calc(100% - 24px);min-height:480px;margin-top:-4px;display:grid;overflow:hidden}.slack-side{color:#ffffffd9;background:#3f0e40;padding:12px 0;overflow-y:auto}.slack-side::-webkit-scrollbar{width:0}.slack-side-head{border-bottom:1px solid #ffffff1a;align-items:center;gap:10px;margin-bottom:10px;padding:6px 16px 14px;display:flex}.slack-side-group{margin-bottom:14px;padding:0 10px}.slack-side-group-head{color:#ffffff80;letter-spacing:.5px;padding:6px 8px;font-size:11px;font-weight:700}.slack-side-item{color:#ffffffbf;cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-size:13px;display:flex}.slack-side-item:hover{color:#fff;background:#ffffff0f}.slack-side-item.active{color:#fff;background:#1164a3;font-weight:600}.slack-side-pip{color:#fff;background:#ce1126;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:auto;padding:0 5px;font-size:10px;font-weight:700;display:inline-flex}.dm-dot{background:#2eb67d;border-radius:50%;width:8px;height:8px;display:inline-block}.slack-main{background:#fff;flex-direction:column;display:flex;overflow:hidden}.slack-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 22px;display:flex}.slack-name{color:var(--text-dark);align-items:center;gap:8px;font-size:16px;font-weight:700;display:flex}.slack-topic{color:var(--text-muted);margin-top:3px;font-size:11px}.slack-prototype-banner{background:var(--info-soft);color:var(--info);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:8px 20px;font-size:11px;display:flex}.slack-msgs{flex:1;padding:14px 22px;overflow-y:auto}.slack-msg{gap:12px;padding:8px 0;display:flex}.slack-msg-head{align-items:baseline;gap:8px;font-size:14px;display:flex}.slack-msg-head b{color:var(--text-dark)}.slack-msg-time{color:var(--text-muted);font-size:11px}.slack-msg-text{color:var(--text);margin-top:2px;font-size:13px;line-height:1.6}.slack-compose{border-top:1px solid var(--line);padding:8px 22px 18px}.slack-compose-box{border:1px solid var(--line);border-radius:10px;padding:8px 12px}.slack-compose-box input{border:none;outline:none;width:100%;padding:6px 0;font-family:inherit;font-size:13px}.slack-compose-bar{color:var(--text-muted);border-top:1px solid var(--line-soft);align-items:center;gap:12px;padding-top:6px;display:flex}.slack-compose-bar .mi{cursor:pointer;font-size:18px}.slack-compose-bar .mi:hover{color:var(--text-dark)}.dropdown{border:1px solid var(--line);z-index:100;background:#fff;border-radius:12px;width:320px;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 12px 32px #14283c1f}.dropdown.notif-drop{width:380px}.dropdown.user-drop{width:280px}.dropdown-head{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.dropdown-user-head{background:var(--bg);border-bottom:1px solid var(--line-soft);align-items:center;gap:12px;padding:16px;display:flex}.dropdown-item{cursor:pointer;border-bottom:1px solid var(--line-soft);align-items:center;gap:12px;padding:10px 16px;display:flex}.dropdown-item:hover{background:var(--bg)}.dropdown-item:last-child{border-bottom:none}.dropdown-item .ic{background:var(--bg);width:32px;height:32px;color:var(--text-muted);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.dropdown-item .ic .mi{font-size:18px}.dropdown-item .ic.primary{background:var(--primary-soft);color:var(--primary-dark)}.dropdown-item .ic.acc{background:var(--accent-soft);color:var(--accent)}.dropdown-item .ic.success{background:var(--success-soft);color:var(--success)}.dropdown-item .ic.warn{background:var(--warn-soft);color:var(--warn)}.dropdown-item .ic.info{background:var(--info-soft);color:var(--info)}.dropdown-item .body{flex:1;min-width:0}.dropdown-item .body .t{color:var(--text-dark);font-size:12px;font-weight:500;line-height:1.4}.dropdown-item .body .m{color:var(--text-muted);margin-top:2px;font-size:10px}.dropdown-foot{background:var(--bg);color:var(--primary-dark);cursor:pointer;border-top:1px solid var(--line-soft);justify-content:center;align-items:center;gap:4px;padding:10px 16px;font-size:12px;font-weight:600;display:flex}.dropdown-foot:hover{background:var(--primary-soft)}.dropdown-item.user-item{color:var(--text);border-bottom:none;padding:9px 16px;font-size:13px}.dropdown-item.user-item .mi{color:var(--text-muted);flex-shrink:0;font-size:18px}.dropdown-item.user-item.danger,.dropdown-item.user-item.danger .mi{color:var(--danger)}.dropdown-divider{background:var(--line-soft);height:1px;margin:4px 0}.switch{background:var(--line);cursor:pointer;border-radius:999px;flex-shrink:0;width:40px;height:22px;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:left .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.switch.on{background:var(--success)}.switch.on:after{left:20px}.app.with-footer{grid-template-rows:64px 1fr 56px;grid-template-areas:"header""main""footer"}.app.with-subnav.with-footer{grid-template-rows:64px 48px 1fr 56px;grid-template-areas:"header""subnav""main""footer"}.app-footer{border-top:1px solid var(--line);background:#fff;grid-area:footer;align-items:center;padding:0 28px;display:flex}.footer-inner{align-items:center;gap:24px;width:100%;display:flex}.footer-brand{flex-shrink:0;align-items:center;gap:12px;display:flex}.footer-logo{width:auto;height:26px}.footer-tag{color:var(--text-muted);border-left:1px solid var(--line);padding-left:12px;font-size:10px}.footer-links{flex:1;justify-content:center;align-items:center;gap:18px;display:flex}.footer-links a{color:var(--text-muted);cursor:pointer;font-size:12px}.footer-links a:hover{color:var(--text-dark)}.footer-copy{color:var(--text-faint);flex-shrink:0;font-size:11px}.jobs-filter{flex-wrap:nowrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.jobs-search{border:1px solid var(--line);min-width:160px;color:var(--text-muted);background:#fff;border-radius:10px;flex:200px;align-items:center;gap:8px;padding:8px 14px;font-size:12px;display:flex}.jobs-search input{background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:12px}.jobs-flt-grp{flex-shrink:0;align-items:center;gap:6px;display:flex}.jobs-flt-grp .lbl{color:var(--text-muted);white-space:nowrap;font-size:11px;font-weight:600}.jobs-flt-grp .form-select{white-space:nowrap;min-width:84px;padding:7px 10px;font-size:12px}.jobs-card{overflow:hidden}.jobs-card-head{border-bottom:1px solid var(--line-soft);background:var(--bg);align-items:center;padding:12px 18px;display:flex}.jobs-table{border-collapse:collapse;width:100%;font-size:12px}.jobs-table thead th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--line);white-space:nowrap;background:#fff;padding:10px 12px;font-size:11px;font-weight:700}.jobs-table tbody td{border-bottom:1px solid var(--line-soft);vertical-align:middle;white-space:nowrap;padding:12px}.jobs-table tbody tr:hover{background:var(--bg)}.job-title{color:var(--text-dark);white-space:nowrap;text-overflow:ellipsis;max-width:320px;font-size:13px;font-weight:700;line-height:1.4;overflow:hidden}.job-title-row{align-items:center;gap:6px;display:flex}.match-pip{color:#e65100;background:linear-gradient(135deg,#ffe0b2,#ffd180);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.match-pip .mi{font-size:14px}.bulk-bar{border:1px solid var(--primary-bright);background:linear-gradient(135deg,#e0f7fa,#fff);border-radius:12px;align-items:center;gap:12px;margin-bottom:12px;padding:12px 18px;display:flex;box-shadow:0 4px 14px #00acc11f}.bulk-bar>button{margin-left:auto}.bulk-bar>button+button{margin-left:0}.flow-chip,.role-chip-tag,.remote-chip,.status-chip{border-radius:6px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:500;display:inline-flex}.flow-chip{background:var(--warn-soft);color:var(--warn)}.role-chip-tag{background:var(--info-soft);color:var(--info)}.remote-chip.remote{background:var(--warn-soft);color:var(--warn)}.remote-chip.onsite{background:var(--success-soft);color:var(--success)}.status-chip{background:var(--primary-soft);color:var(--primary-dark)}.status-chip .dot{background:var(--primary);border-radius:50%;width:6px;height:6px}.rank-chip{background:var(--line-soft);width:26px;height:26px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.rank-chip.rank-A{color:#e65100;background:#fff3e0}.rank-chip.rank-B{color:#1565c0;background:#e3f2fd}.rank-chip.rank-C{background:var(--line-soft);color:var(--text-muted)}.btn.job-action-red{color:#fff;background:#ff7043;border-color:#0000;font-weight:600}.btn.job-action-red:hover{background:#e64a19}.btn.job-action-green{color:#fff;background:#43a047;border-color:#0000}.btn.job-action-green:hover{background:#2e7d32}.proposal-strip{background:linear-gradient(135deg,#fff8f2 0%,#fff 100%);border:1px solid #ffd8b8;border-radius:14px;margin-bottom:18px;padding:16px 20px}.proposal-strip-head{align-items:center;gap:12px;margin-bottom:14px;display:flex}.proposal-strip-list{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:10px;display:grid}.proposal-card{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;gap:14px;padding:14px 16px;display:flex}.proposal-card:hover{border-color:var(--accent);transform:translateY(-1px)}.job-stat{flex-direction:column;gap:3px;display:flex}.job-stat .lbl{color:var(--text-muted);letter-spacing:.8px;font-size:10px;font-weight:700}.job-stat .v{color:var(--text-dark);font-size:13px;font-weight:600}.cand-row{border-bottom:1px solid var(--line-soft);cursor:pointer;align-items:center;gap:14px;padding:12px 0;display:flex}.cand-row:last-child{border-bottom:none}.cand-row:hover{background:var(--bg);border-radius:8px;margin:0 -8px;padding:12px 8px}.match-pct{text-align:center;min-width:60px}.match-pct .v{color:var(--primary-dark);font-size:20px;font-weight:900;line-height:1}.match-pct .v span{font-size:11px}.match-pct .l{color:var(--text-muted);letter-spacing:.8px;margin-top:2px;font-size:9px}.gh-summary{border-bottom:1px solid var(--line-soft);grid-template-columns:auto auto auto 1fr;align-items:center;gap:24px;padding-bottom:14px;display:grid}.gh-stat{text-align:center}.gh-stat .v{color:var(--text-dark);font-size:22px;font-weight:700;line-height:1}.gh-stat .l{color:var(--text-muted);margin-top:6px;font-size:10px}.gh-langs{min-width:0}.gh-langs .l{color:var(--text-muted);letter-spacing:.8px;margin-bottom:6px;font-size:10px;font-weight:700}.gh-lang-bar{background:var(--line-soft);border-radius:4px;height:8px;display:flex;overflow:hidden}.gh-lang{display:block}.gh-lang-0,.gh-dot.gh-lang-0{background:#3178c6}.gh-lang-1,.gh-dot.gh-lang-1{background:#3572a5}.gh-lang-2,.gh-dot.gh-lang-2{background:#f7df1e}.gh-lang-3,.gh-dot.gh-lang-3{background:#563d7c}.gh-lang-4,.gh-dot.gh-lang-4{background:#00add8}.gh-lang-list{color:var(--text-muted);flex-wrap:wrap;gap:14px;margin-top:8px;font-size:11px;display:flex}.gh-lang-list b{color:var(--text-dark);font-weight:700}.gh-dot{vertical-align:-1px;border-radius:50%;width:10px;height:10px;margin-right:4px;display:inline-block}.gh-repos{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.gh-repo{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;padding:12px 14px;transition:all .15s}.gh-repo:hover{border-color:var(--text-muted)}.gh-repo.showcase{border-color:var(--accent);background:linear-gradient(135deg,#fffaf5,#fff)}.gh-repo-head{align-items:center;gap:6px;margin-bottom:6px;display:flex}.gh-repo-name{color:var(--text-dark);font-size:12px;font-weight:700}.gh-repo-desc{color:var(--text-muted);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:8px;font-size:11px;line-height:1.5;display:-webkit-box;overflow:hidden}.gh-repo-meta{color:var(--text-muted);flex-wrap:wrap;gap:10px;font-size:10px;display:flex}.gh-repo-meta span{align-items:center;gap:3px;display:inline-flex}@media (max-width:1024px){.h{gap:16px;padding:0 16px}.h-logo{padding-right:12px}.h-logo .brand-logo{height:32px}.h-link{padding:0 10px;font-size:12px}.h-link .mi{font-size:18px}.role-switch,.h-slack span:not(.slack-mark):not(.h-slack-pip){display:none}.h-slack{padding:6px 10px}.h-user .name{display:none}.main{padding:20px 20px 60px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.grid-2-1,.grid-2{grid-template-columns:1fr}.course-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media (max-width:768px){.h{gap:8px;padding:0 12px;overflow-x:auto}.h-logo{border-right:none;padding-right:8px}.h-logo .brand-logo{height:28px}.h-logo .role-chip{display:none}.h-nav{-webkit-overflow-scrolling:touch;flex:1;gap:0;overflow-x:auto}.h-nav::-webkit-scrollbar{display:none}.h-link span:not(.mi):not(.pip){display:none}.h-link{padding:0 8px}.h-link .mi{font-size:22px}.h-link.active:after{left:4px;right:4px}.h-slack{display:none}.h-icon{width:32px;height:32px}.h-icon .mi{font-size:18px}.h-user{padding:3px 6px 3px 4px}.h-user .mi{font-size:16px}.subnav{height:36px;padding:0 16px}.crumb{font-size:11px}.main{padding:16px 14px 60px}.page-head{flex-direction:column;align-items:stretch;gap:12px}.page-head h1{font-size:20px}.page-head .sub{flex-wrap:wrap;gap:4px;font-size:11px}.page-head-right{flex-wrap:wrap;width:100%}.page-head-right .btn{flex:1;justify-content:center;min-width:0}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}.kpi{gap:10px;padding:14px}.kpi .ic{width:38px;height:38px}.kpi .ic .mi,.kpi .v{font-size:22px}.kpi .l{font-size:10px}.grid-2-1,.grid-2{grid-template-columns:1fr;gap:14px}.course-grid{grid-template-columns:1fr}.t-table,.jobs-table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}.workflow-step{min-width:140px}.card-head{padding:12px 14px}.card-body{padding:14px}.badge-grid{grid-template-columns:repeat(3,1fr)!important}.cd-hero{flex-direction:column;align-items:stretch;gap:16px}.cd-grid{grid-template-columns:1fr}.continue{text-align:center;flex-direction:column;align-items:stretch;gap:10px}.grade-layout{grid-template-columns:1fr}.grade-queue{max-height:240px}.login-card{grid-template-columns:1fr;width:100%;max-width:calc(100vw - 24px);min-height:auto}.login-brand{padding:24px}.login-brand-body{gap:12px}.login-brand-tag{margin-bottom:18px}.login-form-pane{padding:28px 24px}.login-role-switch{grid-template-columns:1fr;gap:4px}.main[style*="grid-template-columns: 260px 1fr"]{grid-template-columns:1fr!important;height:auto!important}}@media (max-width:480px){.page-head h1{font-size:18px}.kpi .v{font-size:20px}.badge-grid{grid-template-columns:repeat(2,1fr)!important}.gh-summary{grid-template-columns:1fr 1fr}}@media print{body{background:#fff}.h,.subnav,.page-head-right,.app-footer{display:none!important}.app{height:auto;display:block}.main{padding:0}.card{box-shadow:none;page-break-inside:avoid}.workflow-step:hover{box-shadow:none;transform:none}button[type=button]:has(.mi:contains("print")){display:none}.btn{display:none}a{color:inherit}}.workflow-card{background:linear-gradient(135deg, #fff 0%, var(--primary-soft) 200%);border-color:var(--primary-pale2);margin-bottom:22px}.workflow-row{-webkit-overflow-scrolling:touch;align-items:stretch;gap:0;padding:20px 24px;display:flex;overflow-x:auto}.workflow-cell{flex:1;align-items:stretch;min-width:0;display:flex}.workflow-step{text-align:center;border-top:3px solid var(--line);background:var(--bg);min-width:0;color:inherit;border-radius:10px;flex-direction:column;flex:1;align-items:center;padding:16px 8px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex}.workflow-step.wf-done{border-top-color:var(--success);background:var(--success-soft)}.workflow-step.wf-active{border-top-color:var(--primary);background:var(--primary-soft)}.workflow-step.wf-pending{border-top-color:var(--line);background:var(--bg)}.wf-icon{width:42px;height:42px;color:var(--primary-dark);border:2px solid var(--line);background:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;margin-bottom:8px;display:flex}.wf-done .wf-icon{color:var(--success);border-color:var(--success)}.wf-active .wf-icon{color:var(--primary-dark);border-color:var(--primary)}.wf-pending .wf-icon{color:var(--text-muted);border-color:var(--line)}.wf-icon .mi{font-size:22px}.wf-content{flex-direction:column;align-items:center;min-width:0;display:flex}.wf-step-num{color:var(--text-muted);letter-spacing:1.5px;margin-bottom:4px;font-size:10px;font-weight:700}.wf-done .wf-step-num{color:var(--success)}.wf-active .wf-step-num{color:var(--primary-dark)}.wf-step-label{color:var(--text-dark);margin-bottom:4px;font-size:13px;font-weight:700;line-height:1.3}.wf-step-desc{color:var(--text-muted);font-size:10px;line-height:1.5}.workflow-arrow{color:var(--text-faint);flex-shrink:0;align-items:center;padding:0 4px;font-size:20px;display:flex}@media (max-width:768px){.workflow-row{flex-direction:column;gap:0;padding:12px 14px;overflow-x:visible}.workflow-cell{flex-direction:column;align-items:stretch}.workflow-step{text-align:left;border-top:none;border-left:3px solid var(--line);flex-direction:row;align-items:center;gap:12px;margin-bottom:0;padding:12px 14px}.workflow-step.wf-done{border-left-color:var(--success)}.workflow-step.wf-active{border-left-color:var(--primary)}.workflow-step.wf-pending{border-left-color:var(--line)}.wf-icon{flex-shrink:0;margin-bottom:0}.wf-content{flex:1;align-items:flex-start}.wf-step-num{margin-bottom:2px;font-size:9px}.wf-step-label{margin-bottom:2px;font-size:13px}.wf-step-desc{font-size:11px}.workflow-arrow{color:var(--text-faint);align-self:center;margin:4px 0;font-size:18px;transform:rotate(90deg)}.kpi{flex-direction:row;align-items:center;gap:10px;padding:12px}.kpi .ic{width:36px;height:36px}.kpi .v{font-size:20px}.kpi .l{font-size:10px;line-height:1.3}.kpi .delta{margin-top:2px;font-size:9px}.kpi .delta .mi{font-size:11px}.card-head{padding:10px 14px}.card-head .ttl{font-size:12px}.card-head .ttl .mi{font-size:16px}.card-head .right{font-size:10px}.card-body{padding:12px 14px}.lrow{gap:10px;padding:10px 0}.lrow .ic{width:32px;height:32px}.lrow .ic .mi{font-size:17px}.lrow .body .t{font-size:12px}.lrow .body .m{gap:6px;font-size:10px}.notif-row{gap:10px;padding:10px 0}.tag.warn,.tag.info,.tag.ok,.tag.danger{font-size:10px;line-height:1.4}.page-head{margin-bottom:14px}}.video-wrap{aspect-ratio:16/9;background:#000;border-radius:12px;width:100%;position:relative;overflow:hidden;box-shadow:0 8px 24px #00000026}.video-empty{aspect-ratio:16/9;background:linear-gradient(135deg, var(--bg) 0%, var(--line-soft) 100%);border:2px dashed var(--line);text-align:center;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;width:100%;padding:20px;display:flex}@media (max-width:768px){.lesson-grid{grid-template-columns:1fr!important}}:root{--bg-page:var(--bg);--bg-white:var(--bg-card);--bg-mid:var(--line-soft);--bg-cta:linear-gradient(135deg, var(--primary), var(--primary-bright));--bg-hero:linear-gradient(135deg, var(--primary), var(--primary-bright));--border:var(--line);--border-light:var(--line-soft);--primary-pale:var(--primary-soft);--primary-pale2:var(--primary-soft);--success-pale:var(--success-soft);--danger-pale:#ffebee;--warn-pale:var(--warn-soft);--text-body:var(--text);--text-light:var(--text-faint);--shadow-xs:0 1px 2px #00acc10a;--shadow-sm:0 1px 4px #00acc114;--shadow-md:0 3px 12px #00acc11a;--shadow-lg:0 6px 24px #00acc121;--shadow-hero:0 8px 24px #00acc138}html,body{height:100%}body{font-family:Noto Sans JP,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}.workflow-step:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00acc126}.mi{vertical-align:middle;font-variation-settings:"FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;-webkit-user-select:none;user-select:none;font-family:Material Symbols Outlined;font-style:normal;font-weight:400;line-height:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
