:root{--bg:#f7f6f2;--panel:#ffffff;--panel-soft:#f0eee8;--text:#1e2528;--muted:#647076;--line:#ddd8cf;--brand:#226f54;--brand-dark:#154b3a;--accent:#c56b3f;--danger:#b42318;--shadow:0 18px 50px rgba(28,35,37,0.08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Hiragino Sans,Yu Gothic,Meiryo,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;gap:24px;padding:18px clamp(20px,4vw,56px);border-bottom:1px solid rgba(221,216,207,.78);background:rgba(247,246,242,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand,.topbar{align-items:center}.brand{display:inline-flex;gap:10px;font-weight:700;letter-spacing:0}.brand-mark{display:grid;width:32px;height:32px;place-items:center;border-radius:8px;background:var(--brand);color:white}.nav{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:14px}.nav a{padding:8px 10px;border-radius:6px}.nav a:hover{background:var(--panel-soft);color:var(--text)}.main{padding:clamp(28px,5vw,72px) clamp(20px,4vw,56px)}.hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:center;min-height:clamp(430px,62vh,620px);overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.hero-home{margin-top:0;background-image:url(/images/pageplant-hero.png);background-position:50%;background-size:cover}.hero-copy{max-width:720px;padding:clamp(28px,6vw,72px)}.eyebrow{color:var(--brand);font-size:14px;font-weight:700;margin:0 0 16px}h1{font-size:clamp(44px,7vw,88px);line-height:.96;margin:0}h1,h2{letter-spacing:0}h2{margin:0 0 16px;font-size:clamp(28px,4vw,44px)}h3{margin:0 0 8px;font-size:18px}p{line-height:1.75}.lead{max-width:680px;color:var(--muted);font-size:18px;margin:24px 0 0}.hero-metrics{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.hero-metrics span{display:inline-flex;min-height:34px;align-items:center;border:1px solid rgba(34,111,84,.22);border-radius:999px;background:rgba(255,255,255,.86);color:#1d3f35;font-size:13px;font-weight:700;padding:0 12px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text);cursor:pointer;font-weight:700}.button.primary{border-color:var(--brand);background:var(--brand);color:white}.button.primary:hover{background:var(--brand-dark)}.button.ghost:hover{background:var(--panel-soft)}.danger-button{border-color:rgba(180,35,24,.28);color:var(--danger)}.danger-button:hover{background:#fff6f2}.summary-panel{padding:28px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-metric-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.metric{display:block;min-height:116px;padding:18px;border:1px solid var(--line);border-radius:8px;background:#fbfaf7}.metric:hover{border-color:rgba(34,111,84,.35);background:#f5f7f1}.metric-danger{border-color:rgba(180,35,24,.24);background:#fff6f2}.metric-danger span,.metric-danger strong{color:var(--danger)}.metric strong{display:block;font-size:28px;margin-bottom:6px}.metric span{color:var(--muted);font-size:13px}.band{margin:48px calc(clamp(20px, 4vw, 56px) * -1) 0;padding:clamp(36px,6vw,72px) clamp(20px,4vw,56px);border-top:1px solid var(--line);background:var(--panel)}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.card{min-height:168px;padding:22px;border:1px solid var(--line);border-radius:8px;background:#fff}.muted{color:var(--muted)}.dashboard-page,.form-page{display:grid;gap:24px;max-width:1180px;margin:0 auto}.dashboard-panel,.form-card{padding:clamp(22px,4vw,34px);border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.form-grid{gap:18px}.detail-grid,.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{gap:18px 28px}.field{display:grid;gap:8px}.compact-field{max-width:150px}.checkbox-field{align-items:center;grid-template-columns:auto minmax(0,1fr)}.field.full,.full{grid-column:1/-1}.label{color:#334044;font-size:14px;font-weight:700}.input,.select,.textarea{width:100%;min-height:44px;border:1px solid #cfc8bc;border-radius:6px;background:#fff;color:var(--text);padding:10px 12px}.compact-input{min-height:38px;padding:7px 10px}.compact-checkbox{display:inline-grid;min-height:38px}.textarea{min-height:132px;resize:vertical}.fine{color:var(--muted);font-size:13px;line-height:1.7}.status-row{display:flex;flex-wrap:wrap;gap:10px}.pill{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:#fbfaf7;color:var(--muted);font-size:13px;font-weight:700}.table{width:100%;border-collapse:collapse;font-size:14px}.table td,.table th{padding:13px 10px;border-bottom:1px solid var(--line);text-align:left}.table th{color:var(--muted);font-size:12px;text-transform:uppercase}.table-preview{max-width:520px;margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.6}.notice{padding:14px 16px;border:1px solid #e2c8ad;border-radius:8px;background:#fff6ed;color:#6d3c1f}.note-list{display:grid;gap:12px;margin-top:18px}.note-item{padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:#fbfaf7}.note-item p{margin:0 0 8px}.code-block{overflow-x:auto;margin:14px 0 0;padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:#1f272a;color:#f7f6f2;font-size:14px}.step-list{display:grid;gap:10px;margin:0;padding-left:20px}.step-list li{line-height:1.7}@media (max-width:860px){.topbar{align-items:flex-start;flex-direction:column}.nav{flex-wrap:wrap}.detail-grid,.form-grid,.grid-3,.hero{grid-template-columns:1fr}.hero-home{background-position:58%}.metric-grid{grid-template-columns:1fr}h1{font-size:46px}}.customer-portal{--cp-bg-soft:#fbfaf8;--cp-surface:#ffffff;--cp-ink:#2c2a28;--cp-ink-soft:#6b6660;--cp-ink-mute:#9a948c;--cp-line:#ece8e1;--cp-primary:#2f7d6e;--cp-primary-deep:#256356;--cp-primary-soft:#e6f1ee;--cp-primary-tint:#f0f7f5;--cp-warn:#c4683f;--cp-warn-soft:#fbeee7;--cp-warn-tint:#fdf6f2;--cp-done:#4a8f6b;--cp-done-soft:#e9f3ec;--cp-wait:#7d8a99;--cp-wait-soft:#eef1f4;--cp-radius:18px;--cp-radius-sm:12px;--cp-shadow-sm:0 1px 2px rgba(44,42,40,0.04),0 2px 8px rgba(44,42,40,0.04);--cp-shadow-md:0 4px 14px rgba(44,42,40,0.07),0 2px 6px rgba(44,42,40,0.04);--cp-shadow-lg:0 12px 34px rgba(44,42,40,0.1);color:var(--cp-ink);max-width:980px;margin:0 auto}.customer-portal .page-head{margin-bottom:26px}.customer-portal .page-title{display:flex;align-items:center;gap:12px;color:var(--cp-ink);font-size:clamp(22px,4.4vw,30px);font-weight:800;letter-spacing:0;line-height:1.35}.customer-portal .page-lead{max-width:640px;margin-top:9px;color:var(--cp-ink-soft);font-size:14.5px}.customer-portal .ic,.customer-portal .tic{display:inline-grid;place-items:center;color:var(--cp-primary)}.customer-portal .tic{width:36px;height:36px;flex:none;border-radius:12px;background:var(--cp-primary-soft)}.customer-portal .ic svg,.customer-portal .tic svg{width:18px;height:18px}.customer-portal .hero{min-height:0;margin-bottom:18px;padding:28px 28px 26px;overflow:hidden;border:1px solid var(--cp-line);border-radius:var(--cp-radius);background:linear-gradient(135deg,#ffffff 0,var(--cp-primary-tint) 100%);box-shadow:var(--cp-shadow-md)}.customer-portal .hero:before{content:"";position:absolute;top:-60px;right:-60px;width:230px;height:230px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(47,125,110,.1),transparent 70%);pointer-events:none}.customer-portal .hero.is-warn{background:linear-gradient(135deg,#ffffff 0,var(--cp-warn-tint) 100%)}.customer-portal .hero-tag{display:inline-flex;align-items:center;gap:7px;margin-bottom:14px;padding:6px 12px;border-radius:999px;background:var(--cp-primary-soft);color:var(--cp-primary-deep);font-size:12px;font-weight:700;letter-spacing:.04em}.customer-portal .hero.is-warn .hero-tag{background:var(--cp-warn-soft);color:var(--cp-warn)}.customer-portal .dot{width:7px;height:7px;border-radius:50%;background:currentColor}.customer-portal .hero-msg{max-width:680px;margin:0;font-size:clamp(18px,3.6vw,24px);font-weight:800;line-height:1.5}.customer-portal .hero-note{max-width:600px;margin-top:10px;color:var(--cp-ink-soft);font-size:14px}.customer-portal .hero-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:22px}.customer-portal .btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:0 22px;border:1px solid transparent;border-radius:13px;color:inherit;cursor:pointer;font-family:inherit;font-size:14.5px;font-weight:700;text-decoration:none;transition:transform .18s ease,box-shadow .25s ease,background .2s,border-color .2s}.customer-portal .btn svg{width:18px;height:18px;flex:none}.customer-portal .btn-primary{background:linear-gradient(135deg,var(--cp-primary),var(--cp-primary-deep));color:#fff;box-shadow:0 6px 16px rgba(47,125,110,.28)}.customer-portal .btn-ghost:hover,.customer-portal .btn-primary:hover{transform:translateY(-2px)}.customer-portal .btn-ghost{border-color:var(--cp-line);background:rgba(255,255,255,.72);color:var(--cp-primary-deep);box-shadow:var(--cp-shadow-sm)}.customer-portal .section{margin-top:30px}.customer-portal .section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.customer-portal .section-title{display:flex;align-items:center;gap:8px;margin:0;color:var(--cp-ink);font-size:15px;font-weight:800;letter-spacing:.02em}.customer-portal .badge{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;background:var(--cp-primary-soft);color:var(--cp-primary-deep);font-size:12px;font-weight:800}.customer-portal .files-card,.customer-portal .form-card,.customer-portal .progress-card,.customer-portal .quiet-card{border:1px solid var(--cp-line);border-radius:var(--cp-radius);background:var(--cp-surface);box-shadow:var(--cp-shadow-sm)}.customer-portal .progress-card{padding:24px 26px}.customer-portal .steps{display:flex;align-items:flex-start}.customer-portal .step{position:relative;display:flex;flex:1 1;flex-direction:column;align-items:center;gap:8px;min-width:0;color:var(--cp-ink-mute);text-align:center}.customer-portal .step:before{content:"";position:absolute;top:15px;left:-50%;width:100%;height:2px;background:var(--cp-line)}.customer-portal .step:first-child:before{display:none}.customer-portal .node{position:relative;z-index:1;display:grid;width:32px;height:32px;place-items:center;border:2px solid var(--cp-line);border-radius:50%;background:#fff;color:var(--cp-ink-mute);font-size:12px;font-weight:800}.customer-portal .step.done .node{border-color:var(--cp-done);background:var(--cp-done-soft);color:var(--cp-done)}.customer-portal .step.current .node{border-color:var(--cp-primary);background:var(--cp-primary);color:#fff;box-shadow:0 0 0 5px var(--cp-primary-soft)}.customer-portal .label{color:inherit;font-size:12px;font-weight:700;line-height:1.5}.customer-portal .cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.customer-portal .card{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;min-height:0;padding:18px;border:1px solid var(--cp-line);border-radius:var(--cp-radius);background:#fff;box-shadow:var(--cp-shadow-sm)}.customer-portal .card-ic,.customer-portal .cat-ic{display:grid;width:44px;height:44px;place-items:center;border-radius:14px;background:var(--cp-primary-soft);color:var(--cp-primary-deep)}.customer-portal .card-ic svg,.customer-portal .cat-ic svg{width:21px;height:21px}.customer-portal .card-title,.customer-portal .cat-name{margin:0;font-size:15px;font-weight:800}.customer-portal .card-desc,.customer-portal .cat-desc{margin:5px 0 0;color:var(--cp-ink-soft);font-size:13px}.customer-portal .card-chev{align-self:center;color:var(--cp-primary);font-weight:800}.customer-portal .quiet-card{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:18px}.customer-portal .quiet-link{color:var(--cp-primary-deep);font-weight:700;word-break:break-all}.customer-portal .banner{display:flex;gap:14px;padding:16px 18px;border:1px solid var(--cp-line);border-radius:var(--cp-radius);background:#fff;box-shadow:var(--cp-shadow-sm)}.customer-portal .banner.warn{border-color:#f0d0bd;background:var(--cp-warn-tint);color:#6d3c1f}.customer-portal .bic{width:22px;height:22px;flex:none;color:var(--cp-warn)}.customer-portal .btitle{font-weight:800}.customer-portal .btext{margin-top:3px;color:var(--cp-ink-soft);font-size:13.5px}.customer-portal .revision-list{display:grid;gap:8px;margin-top:12px}.customer-portal .revision-item{display:flex;gap:8px;font-size:13px}.customer-portal .revision-item .cat,.customer-portal .revision-item .field{flex:none;color:var(--cp-warn);font-weight:800}.customer-portal .pre-submit-note,.customer-portal .progress-strip,.customer-portal .type-note{border:1px solid var(--cp-line);border-radius:var(--cp-radius);background:#fff;box-shadow:var(--cp-shadow-sm)}.customer-portal .progress-strip{padding:16px 18px}.customer-portal .progress-strip-top{display:flex;justify-content:space-between;gap:12px;color:var(--cp-ink-soft);font-size:13px;font-weight:800}.customer-portal .progress-track{height:9px;margin-top:10px;overflow:hidden;border-radius:999px;background:var(--cp-line-soft)}.customer-portal .progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cp-primary),var(--cp-primary-deep))}.customer-portal .files-card,.customer-portal .form-section{padding:22px;border:1px solid var(--cp-line);border-radius:var(--cp-radius);background:#fff;box-shadow:var(--cp-shadow-sm)}.customer-portal .form-section+.form-section{margin-top:16px}.customer-portal .sec-head{margin-bottom:18px}.customer-portal .sec-title{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:800}.customer-portal .sec-num{display:grid;width:26px;height:26px;place-items:center;border-radius:9px;background:var(--cp-primary-soft);color:var(--cp-primary-deep);font-size:12px}.customer-portal .field-help,.customer-portal .sec-sub{margin-top:5px;color:var(--cp-ink-soft);font-size:13px}.customer-portal .field-group{display:grid;gap:8px;margin-top:16px}.customer-portal .field-label{color:var(--cp-ink);font-size:13px;font-weight:800}.customer-portal .req{margin-left:6px;color:var(--cp-warn);font-size:11px}.customer-portal .cat-select-row select,.customer-portal .field-input,.customer-portal .field-textarea{width:100%;min-height:46px;border:1px solid #ded8ce;border-radius:13px;background:#fff;color:var(--cp-ink);padding:11px 13px}.customer-portal .field-textarea{min-height:120px;resize:vertical}.customer-portal .field-textarea.tall{min-height:160px}.customer-portal .field-input:disabled,.customer-portal .field-textarea:disabled,.customer-portal select:disabled{background:var(--cp-bg-soft);color:var(--cp-ink-soft)}.customer-portal .pre-submit-note,.customer-portal .type-note{margin-top:16px;padding:14px 16px;color:var(--cp-ink-soft);font-size:13px}.customer-portal .action-bar{position:sticky;bottom:14px;z-index:5;margin-top:22px}.customer-portal .action-bar-inner{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:14px;border:1px solid var(--cp-line);border-radius:var(--cp-radius);background:rgba(255,255,255,.9);box-shadow:var(--cp-shadow-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.customer-portal .left{color:var(--cp-ink-soft);font-size:13px}.customer-portal .spacer{flex:1 1}.customer-portal .cat-grid,.customer-portal .type-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.customer-portal .cat-card,.customer-portal .type-box{display:grid;gap:8px;min-height:112px;padding:15px;border:1px solid var(--cp-line);border-radius:var(--cp-radius);background:#fff;box-shadow:var(--cp-shadow-sm)}.customer-portal .type-opt input{position:absolute;opacity:0;pointer-events:none}.customer-portal .type-opt input:checked+.type-box{border-color:var(--cp-primary);background:var(--cp-primary-tint);box-shadow:0 0 0 4px var(--cp-primary-soft)}.customer-portal .ti{color:var(--cp-primary)}.customer-portal .tlabel{font-weight:800}.customer-portal .ttext{color:var(--cp-ink-soft);font-size:12.5px}.customer-portal .cancel .ti,.customer-portal .cancel .tlabel{color:var(--cp-warn)}.customer-portal .uploader{border:1px solid var(--cp-line);border-radius:var(--cp-radius);background:#fff;box-shadow:var(--cp-shadow-sm)}.customer-portal .dropzone{display:grid;place-items:center;min-height:210px;padding:28px;border:2px dashed #dcd6cc;border-radius:var(--cp-radius);background:var(--cp-bg-soft);text-align:center}.customer-portal .dropzone.is-dragging{border-color:var(--cp-primary);background:var(--cp-primary-tint);box-shadow:inset 0 0 0 1px var(--cp-primary-soft)}.customer-portal .dz-ic{display:grid;width:58px;height:58px;place-items:center;margin:0 auto 12px;border-radius:18px;background:var(--cp-primary-soft);color:var(--cp-primary-deep)}.customer-portal .dz-title{font-size:18px;font-weight:800}.customer-portal .dz-limit,.customer-portal .dz-sub,.customer-portal .selected-files{color:var(--cp-ink-soft);font-size:13px}.customer-portal .selected-files{max-width:560px;margin:12px auto 0;word-break:break-word}.customer-portal .upload-actions,.customer-portal .upload-note-field{padding:0 18px 18px}.customer-portal .cat-select-row{display:grid;grid-template-columns:160px minmax(0,1fr);gap:12px;align-items:center;margin-top:16px}.customer-portal .files-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.customer-portal .files-count{color:var(--cp-primary-deep);font-weight:800}.customer-portal .files-table{display:grid;gap:8px}.customer-portal .file-head-row,.customer-portal .file-row{display:grid;grid-template-columns:minmax(0,1.5fr) 100px 90px 140px 72px;gap:10px;align-items:center;padding:12px;border:1px solid var(--cp-line);border-radius:var(--cp-radius-sm)}.customer-portal .file-head-row{color:var(--cp-ink-mute);font-size:12px;font-weight:800}.customer-portal .file-row{background:#fff}.customer-portal .file-name{font-weight:800;word-break:break-word}.customer-portal .cat-tag,.customer-portal .status-chip{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border-radius:999px;background:var(--cp-primary-soft);color:var(--cp-primary-deep);font-size:12px;font-weight:800}.customer-portal .del-btn{border:0;background:transparent;color:var(--cp-warn);cursor:pointer;font-weight:800}.customer-portal .cancel-block{display:grid;gap:14px;margin-top:14px;padding:16px;border:1px solid #f0d0bd;border-radius:var(--cp-radius);background:var(--cp-warn-tint)}.customer-portal .field-row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.customer-portal .confirm-box{display:flex;gap:10px;align-items:flex-start;color:var(--cp-ink-soft);font-size:13px}.customer-portal .submit-area{margin-top:18px}.customer-portal .history{display:grid;gap:10px}.customer-portal .hist-item{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;padding:14px;border:1px solid var(--cp-line);border-radius:var(--cp-radius);background:#fff}.customer-portal .hist-ic{display:grid;width:42px;height:42px;place-items:center;border-radius:14px;background:var(--cp-primary-soft);color:var(--cp-primary-deep)}.customer-portal .hist-ic.cancel{background:var(--cp-warn-soft);color:var(--cp-warn)}.customer-portal .hist-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}.customer-portal .hist-title,.customer-portal .hist-type{font-weight:800}.customer-portal .hist-title{margin-top:5px}.customer-portal .hist-date{color:var(--cp-ink-mute);font-size:12px}.customer-portal .files-empty,.customer-portal .hist-empty{padding:22px;border:1px dashed #dcd6cc;border-radius:var(--cp-radius);color:var(--cp-ink-soft);text-align:center}@media (max-width:860px){.customer-portal .cards,.customer-portal .cat-grid,.customer-portal .field-row2,.customer-portal .type-grid{grid-template-columns:1fr}.customer-portal .steps{display:grid;gap:12px}.customer-portal .step{flex-direction:row;justify-content:flex-start;text-align:left}.customer-portal .step:before{display:none}.customer-portal .card{grid-template-columns:44px minmax(0,1fr)}.customer-portal .card-chev{display:none}.customer-portal .cat-select-row,.customer-portal .file-head-row,.customer-portal .file-row{grid-template-columns:1fr}.customer-portal .file-head-row{display:none}}