:root{color-scheme:light;--bg:#f6f5f2;--sf:#fff;--sub:#faf9f7;--ln:#e5e3de;--ln2:#efeeea;--ink:#16181b;--ink2:#383c41;--mu:#646a71;--fa:#7a8087;
--acc:#1e6b52;--acc2:#175641;--acc-bg:#e9f3ef;--amber:#a15c07;--num:"Inter","SF Pro Text","Segoe UI",system-ui,sans-serif;--sh:0 1px 2px rgba(22,24,27,.05)}
*{box-sizing:border-box}html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:14px/1.6 "Hiragino Sans","Noto Sans JP","Noto Sans CJK JP",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}
h1,h2,h3,h4,p,figure,dl,dd{margin:0}:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.north-app{min-height:100vh}
.topbar{display:flex;align-items:center;gap:16px;height:56px;padding:0 28px;background:var(--sf);border-bottom:1px solid var(--ln)}
.brand{display:flex;align-items:center;gap:10px}
.brand-mark{width:26px;height:26px;border-radius:7px;background:var(--acc);position:relative}
.brand-mark::after{content:"";position:absolute;left:8px;top:6px;width:10px;height:10px;border-left:2.4px solid #fff;border-top:2.4px solid #fff;transform:translateY(3px) rotate(45deg)}
.brand h1{font-size:16px;font-weight:800;letter-spacing:.04em}
.brand p{font-size:12px;color:var(--mu);padding-left:10px;border-left:1px solid var(--ln)}
.text-button{border:0;background:none;color:var(--acc);font-size:13px;font-weight:600;padding:4px 2px}
.text-button:hover{color:var(--acc2);text-decoration:underline;text-underline-offset:3px}
.topbar .text-button{margin-left:auto;height:32px;padding:0 12px;border:1px solid var(--ln);border-radius:8px;color:var(--ink2);background:var(--sf)}
.app-nav{display:flex;gap:4px;height:46px;padding:0 28px;background:var(--sf);border-bottom:1px solid var(--ln)}
.app-nav button{display:flex;align-items:center;gap:7px;height:100%;padding:0 12px;border:0;border-bottom:2px solid transparent;background:none;font-size:13px;font-weight:600;color:var(--mu)}
.app-nav button:hover{color:var(--ink)}
.app-nav button[aria-pressed=true]{color:var(--ink);border-bottom-color:var(--ink)}
.app-nav span{font:600 11px var(--num);min-width:18px;height:18px;border-radius:9px;background:#efeeea;color:var(--ink2);display:grid;place-items:center;padding:0 5px}
.app-content{max-width:1320px;margin:0 auto;padding:20px 28px 28px}
.workspace-grid{display:grid;grid-template-columns:320px minmax(0,1fr);gap:18px;align-items:start}
.jobs-panel,.job-detail,.pros-panel,.profile-panel,.review-panel,#saved-panel,#orders-panel{background:var(--sf);border:1px solid var(--ln);border-radius:10px;box-shadow:var(--sh)}
.jobs-panel{padding:16px;position:sticky;top:16px}
.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.eyebrow{font-size:11.5px;font-weight:600;color:var(--mu)}
.section-heading h2{font-size:15px}
.helper{font:12px var(--num);color:var(--mu)}
.field-label{display:block;font-size:12px;font-weight:600;color:var(--mu);margin-bottom:5px}
.search-input{width:100%;height:36px;padding:0 12px 0 34px;border:1px solid var(--ln);border-radius:8px;background:var(--sf) url("icons/search.svg") 11px center/15px no-repeat;font-size:13px;box-shadow:var(--sh)}
.search-input::placeholder{color:var(--fa)}
.job-filters{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.job-filters button{height:28px;padding:0 11px;border:1px solid var(--ln);border-radius:999px;background:var(--sf);font-size:12px;font-weight:600;color:var(--ink2)}
.job-filters button:hover{background:var(--sub)}
.job-filters button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.job-list{display:grid;gap:6px;max-height:calc(100vh - 330px);min-height:300px;overflow:auto;margin:0 -6px;padding:0 6px}
.job-button{display:flex;gap:12px;align-items:flex-start;width:100%;padding:10px;border:1px solid var(--ln);border-radius:9px;background:var(--sf);text-align:left}
.job-button:hover{background:var(--sub)}
.job-button[aria-pressed=true]{border-color:var(--acc);background:var(--acc-bg);box-shadow:inset 3px 0 0 var(--acc)}
.job-cover{width:40px;height:40px;flex:none;border-radius:9px;display:grid;place-items:center;background:#efeeea;color:var(--ink2);font-weight:700;overflow:hidden}
.job-cover svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.job-cover[data-field="Web・EC"]{background:#e6eef7;color:#2c5a8a}.job-cover[data-field="アプリ"]{background:#e8f1ec;color:#2f6a4c}.job-cover[data-field="デザイン"]{background:#f6ece3;color:#8a5326}.job-cover[data-field="動画・写真"]{background:#ececec;color:#3b3f45}.job-cover[data-field="企画・文章"]{background:#f3efdf;color:#76621d}
.job-cover img{width:100%;height:100%;object-fit:cover}
.job-button-copy{display:flex;flex-direction:column;min-width:0;flex:1}
.job-button-copy>span:first-child{font-size:11.5px;color:var(--mu)}
.job-button-copy strong{font-size:13.5px;line-height:1.45}
.job-button-copy b{font:700 12.5px var(--num);margin-top:2px}
.job-button-copy>span:last-child{font-size:11.5px;color:var(--acc);font-weight:600}
.empty-state{text-align:center;padding:22px 16px;border:1px dashed var(--ln);border-radius:9px;color:var(--mu)}
.empty-state h3{font-size:14px;color:var(--ink);margin-bottom:4px}.empty-state p{font-size:12.5px;margin-bottom:10px}
.primary,.secondary{height:38px;padding:0 16px;border-radius:8px;font-size:13px;font-weight:700;border:1px solid transparent;white-space:nowrap}
.primary{background:var(--acc);color:#fff}.primary:hover:not(:disabled){background:var(--acc2)}
.primary:disabled{background:#c9ccd0;color:#fff}
.secondary{background:var(--sf);border-color:var(--ln);color:var(--ink)}.secondary:hover{background:var(--sub)}
.comparison-panel{display:grid;gap:16px;min-width:0}
.job-detail{padding:18px 20px}
.job-detail-top{display:flex;justify-content:space-between;gap:16px;margin-bottom:8px}
.job-detail h2{font-size:19px;margin-top:2px}
.job-budget{text-align:right;flex:none}
.job-budget dt{font-size:11.5px;color:var(--mu)}
.job-budget dd{font:700 22px var(--num);letter-spacing:-.01em}
.job-brief{font-size:13.5px;color:var(--ink2);line-height:1.8;margin-bottom:10px}
.job-scope{font-size:13px;padding:8px 12px;border-radius:8px;background:var(--sub);border:1px solid var(--ln2)}
.job-context{font-size:12px;color:var(--mu);margin-top:8px}
.pros-panel{padding:18px 20px}
.pro-tools{display:flex;align-items:flex-end;gap:14px;margin-bottom:12px}
.pro-tools>div{flex:1}
.pro-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.pro-card{position:relative;display:flex;flex-direction:column;padding:14px;border:1px solid var(--ln);border-radius:10px;background:var(--sf);transition:border-color .12s,box-shadow .12s}
.pro-card:hover{border-color:#d3d1cb}
.pro-card.selected{border-color:var(--acc);box-shadow:0 0 0 3px rgba(30,107,82,.1)}
.pro-select{display:flex;align-items:center;gap:10px;border:0;background:none;padding:0;text-align:left;padding-right:34px}
.pro-select strong{display:block;font-size:14px}
.pro-select small{display:block;font-size:12px;color:var(--mu)}
.avatar{width:40px;height:40px;flex:none;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:15px;background:#5b6470;overflow:hidden;letter-spacing:0}
.avatar img{display:none}
.avatar-ren{background:#3b5b7a}.avatar-aoi{background:#8a5a3e}.avatar-haru{background:#4d6b3a}.avatar-mio{background:#8a5a6b}.avatar-toma{background:#2f6b6b}.avatar-saki{background:#7a6334}.avatar-noa{background:#3f5480}.avatar-yuta{background:#5b6470}
.save-button{position:absolute;top:12px;right:12px;width:30px;height:30px;border-radius:7px;border:1px solid var(--ln);background:var(--sf);display:grid;place-items:center;color:var(--fa);padding:0}
.save-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}
.save-button:hover{color:var(--ink)}
.save-button[aria-pressed=true]{color:var(--amber);border-color:#ecd6b5;background:#fbf3e6}
.save-button[aria-pressed=true] svg{fill:currentColor}
.pro-strength{font-size:12.5px;color:var(--ink2);margin:10px 0 12px;flex:1}
.pro-quote{display:flex;align-items:baseline;justify-content:space-between;padding-top:10px;border-top:1px solid var(--ln2)}
.pro-quote span{font-size:11.5px;color:var(--mu)}
.pro-quote strong{font:700 17px var(--num)}
.pro-quote strong.not-quoted{font:600 12px "Hiragino Sans","Noto Sans JP",sans-serif;color:var(--fa)}
.profile-panel{padding:20px}
.profile-head{display:flex;align-items:center;gap:16px;margin-bottom:12px}
.profile-head .avatar{width:64px;height:64px;font-size:24px}
.profile-head h2{font-size:20px}
.profile-role{font-size:13px;color:var(--ink2)}
.profile-place{font-size:12px;color:var(--mu)}
.profile-bio{font-size:13.5px;line-height:1.8;color:var(--ink2);margin-bottom:10px}
.profile-strengths{margin:0 0 16px;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.profile-strengths li{font-size:12px;padding:3px 10px;border-radius:6px;background:var(--acc-bg);color:var(--acc);font-weight:600}
.work-heading{font-size:13px;margin-bottom:8px}
.work-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}
.work-card{border:1px solid var(--ln);border-radius:9px;overflow:hidden;background:var(--sf)}
.work-card>img,.work-art{display:block;width:100%;height:150px;object-fit:cover;background:#ecebe7}
.work-card figcaption{font-size:12.5px;font-weight:600;padding:8px 12px;border-top:1px solid var(--ln2)}
.work-art{display:flex;justify-content:center;align-items:center;gap:9px;padding:22px;overflow:hidden;background:#e6e9ec}
.work-art>i{display:block;border-radius:5px;background:#fff;box-shadow:0 2px 8px rgba(30,40,50,.12);width:38%;height:88px}
.work-art>i:before{content:'';display:block;width:65%;height:8px;background:#9aa6b2;margin:13px auto 10px;border-radius:2px}
.work-art>i:after{content:'';display:block;width:65%;height:30px;background:#e1e6eb;margin:auto;border-radius:2px}
.work-art-film{background:#2a3440}.work-art-film>i{width:60%;height:74px;background:#c3ccd6;border-radius:3px}
.work-art-film>i:after{width:0;height:0;background:none;border-left:18px solid #34404d;border-top:12px solid transparent;border-bottom:12px solid transparent;margin-top:4px}
.work-art-film>i:before{height:0;margin:0}.work-art-film>i+i{display:none}
.work-art-design{background:#ece4d8}.work-art-design>i{background:#faf8f3;transform:rotate(-7deg)}.work-art-design>i+i{transform:rotate(6deg);background:#3f4a55}.work-art-design>i:after{height:23px;background:#c9bda9}
.work-art-content{background:#e6e9e1}.work-art-content>i{width:54%;height:95px}.work-art-content>i:after{height:4px;box-shadow:0 11px #d4dbcc,0 22px #d4dbcc;background:#d4dbcc}
.work-art-app{background:#e3ebe7}.work-art-app>i{width:24%;height:100px;border-radius:9px}
.quote-box{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px 16px;padding:14px 16px;border-radius:10px;background:var(--sub);border:1px solid var(--ln)}
.quote-box dt{font-size:12px;color:var(--mu)}
.quote-box dd{font:700 24px var(--num);letter-spacing:-.01em}
.quote-context{grid-column:1/-1;font-size:12px;color:var(--mu)}
.review-panel{padding:20px}
.review-panel h2{font-size:17px}
.review-intro{font-size:13px;color:var(--mu);margin:2px 0 12px}
.review-summary{border:1px solid var(--ln);border-radius:9px;margin-bottom:14px}
.review-summary div{display:grid;grid-template-columns:130px 1fr;gap:12px;padding:10px 14px}
.review-summary div+div{border-top:1px solid var(--ln2)}
.review-summary dt{font-size:12px;color:var(--mu)}
.review-summary dd{font-size:13.5px}
.review-amount{font:700 17px var(--num)!important}
.note-input{width:100%;padding:10px 12px;border:1px solid var(--ln);border-radius:8px;font-size:13.5px;line-height:1.7;resize:vertical}
.note-count{font:11.5px var(--num);color:var(--fa);text-align:right;margin:2px 0 10px}
.check-label,.delivery-label{display:flex;align-items:center;gap:9px;font-size:13px;cursor:pointer}
.check-label input,.delivery-label input{width:16px;height:16px;accent-color:var(--acc);margin:0}
.review-actions{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:14px;border-top:1px solid var(--ln2)}
#saved-panel,#orders-panel{padding:18px 20px}
.saved-list{margin-bottom:16px}
#saved-profile-panel{border:1px solid var(--ln);border-radius:10px;box-shadow:none}
.orders-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px;align-items:start}
.order-list{display:grid;gap:6px}
.order-choice{display:block;width:100%;padding:10px 12px;border:1px solid var(--ln);border-radius:9px;background:var(--sf);text-align:left}
.order-choice strong{display:block;font-size:13px}.order-choice small{font-size:12px;color:var(--mu)}
.order-choice[aria-pressed=true]{border-color:var(--acc);background:var(--acc-bg)}
.order-room{border:1px solid var(--ln);border-radius:10px;padding:18px}
.room-heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}
.room-heading h3{font-size:17px}
.room-person{font-size:12.5px;color:var(--mu)}
.room-price{font:700 22px var(--num)}
.room-steps{list-style:none;margin:0 0 14px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--ln2);border-radius:8px;overflow:hidden}
.room-steps li{display:flex;align-items:center;gap:8px;padding:9px 10px;font-size:12.5px;color:var(--mu)}
.room-steps li+li{border-left:1px solid var(--ln2)}
.room-steps li span{width:20px;height:20px;border-radius:50%;border:1.5px solid #cfd1d4;display:grid;place-items:center;font:700 9.5px var(--num);flex:none}
.room-steps li.done{color:var(--ink2)}.room-steps li.done span{background:var(--acc);border-color:var(--acc);color:#fff}
.room-steps li[aria-current=step]{background:var(--acc-bg);color:var(--ink);font-weight:700}.room-steps li[aria-current=step] span{border-color:var(--acc);color:var(--acc)}
.room-note{font-size:12.5px;color:var(--ink2);padding:10px 12px;border-radius:8px;background:var(--sub);border:1px solid var(--ln2);margin-bottom:14px}
.room-note strong{display:block;font-size:11.5px;color:var(--mu)}
.delivery-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.delivery-heading h4{font-size:13px}
.delivery-list{border:1px solid var(--ln);border-radius:9px;margin-bottom:10px}
.delivery-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px}
.delivery-item+.delivery-item{border-top:1px solid var(--ln2)}
.delivery-item.checked{background:#f4f9f6}
.delivery-label span{display:flex;flex-direction:column;font-weight:600}
.delivery-label small{font-weight:400;font-size:11.5px;color:var(--mu)}
.artifact-preview{border:1px solid var(--ln);border-radius:9px;padding:12px;margin-bottom:10px;background:var(--sub)}
.artifact-heading{display:flex;justify-content:space-between;margin-bottom:8px;font-size:13px}
.artifact-visual{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:center}
.artifact-visual img,.artifact-visual .work-art{width:100%;height:140px;object-fit:cover;border-radius:7px}
.artifact-copy p{font-size:11.5px;color:var(--mu)}.artifact-copy h4{font-size:15px}
.artifact-system{display:flex;gap:6px}.artifact-system span{flex:1;text-align:center;padding:18px 6px;border:1px solid var(--ln);border-radius:7px;background:var(--sf);font-size:12.5px;font-weight:600}
.artifact-guide{margin:0;padding-left:20px;font-size:12.5px}
.artifact-preview>p{font-size:12px;color:var(--mu);margin-top:8px}
.room-hint{font-size:12px;color:var(--mu);margin-bottom:10px}
.room-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:9px;background:var(--sub);border:1px solid var(--ln)}
.room-actions p{font-size:12.5px;color:var(--ink2)}
.complete-badge{font-size:12px;font-weight:700;color:var(--acc);background:var(--acc-bg);border-radius:6px;padding:3px 10px}
.complete-review{margin-top:10px;padding:14px;border:1px solid #bfd9cd;border-radius:9px;background:#f2f8f5}
.complete-review h4{font-size:14px}.complete-review p{font-size:12.5px;color:var(--ink2);margin:2px 0 10px}
.complete-actions{display:flex;gap:8px;justify-content:flex-end}
.room-history{list-style:none;margin:14px 0 0;padding:12px 0 0;border-top:1px solid var(--ln2);font:12px var(--num);color:var(--mu);display:grid;gap:4px}
.live-status{margin-top:18px;font-size:12.5px;color:var(--mu)}
.sample-note{margin-top:6px;font-size:11.5px;color:var(--fa);line-height:1.7}
@media(max-width:1000px){.workspace-grid{grid-template-columns:1fr}.jobs-panel{position:static}.job-list{max-height:none;min-height:0;grid-auto-flow:column;grid-auto-columns:260px;overflow-x:auto;padding-bottom:4px}.orders-grid{grid-template-columns:1fr}}
@media(max-width:640px){
  .topbar{padding:0 12px;height:52px}.brand p{display:none}
  .app-nav{padding:0 8px;overflow-x:auto}.app-nav button{padding:0 9px;white-space:nowrap}
  .app-content{padding:12px 12px 24px}
  .jobs-panel,.job-detail,.pros-panel,.profile-panel,.review-panel,#saved-panel,#orders-panel{padding:14px}
  .job-detail-top{flex-direction:column;gap:4px}.job-budget{text-align:left}
  .pro-tools{flex-direction:column;align-items:stretch;gap:6px}
  .pro-list{grid-template-columns:1fr}
  .work-grid{grid-template-columns:1fr 1fr;gap:8px}.work-card>img,.work-art{height:110px}
  .quote-box{grid-template-columns:1fr}.quote-box .primary{width:100%}
  .review-summary div{grid-template-columns:1fr;gap:0}
  .room-steps{grid-template-columns:1fr 1fr}.room-steps li:nth-child(3){border-left:0}.room-steps li:nth-child(n+3){border-top:1px solid var(--ln2)}
  .room-heading{flex-direction:column}
  .room-actions{flex-direction:column;align-items:stretch}
  .artifact-visual{grid-template-columns:1fr}
}
.workspace-grid>*,.jobs-panel,.comparison-panel,.orders-grid>*{min-width:0}
.brand-mark::after{content:"N";position:static;display:grid;place-items:center;width:100%;height:100%;border:0;transform:none;color:#fff;font:800 14px var(--num)}

/* iframe埋め込み時は画面高さに依存しない */
.is-embedded .north-app{min-height:0}
.is-embedded .job-list{max-height:640px}
