:root{--navy:#10396f;--ink:#142033;--line:#e3e7ec;--user:#e8f1ff;--ok:#e9f7eb}*{box-sizing:border-box}body,html{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif;color:var(--ink);background:#fff}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}.auth-screen,.screen{min-height:100vh}.auth-screen{display:flex;flex-direction:column;background:linear-gradient(130deg,#f7f9fc,#fff)}.center-wrap{width:850px;margin:auto;padding:54px 0 42px;text-align:center}.service-title{font-size:48px;letter-spacing:.02em;margin:0 0 12px;font-weight:800}.lead{font-size:19px;color:#465364;margin:0 0 24px}.top-trial,.trial{display:inline-block;background:linear-gradient(135deg,#204c85,#0d2d5b);color:#fff;border-radius:24px;padding:10px 28px;font-weight:700;margin-bottom:22px}.form-card{margin:0 auto;width:850px;text-align:left;background:#fff;border-radius:14px;padding:32px;box-shadow:0 6px 16px #13284a12;border:1px solid #eef0f4}.field{margin-bottom:27px}.field label{font-size:17px;font-weight:700;display:block;margin-bottom:10px}.required{font-size:13px;color:#fff;background:var(--navy);padding:4px 8px;border-radius:5px;margin-left:7px}.input,.textarea{width:100%;border:1px solid #cad1db;border-radius:8px;padding:14px;font-size:16px;color:var(--ink);outline:none}.input:focus,.textarea:focus{border-color:#1766aa;box-shadow:0 0 0 3px #dcecff}.textarea{height:172px;resize:none;line-height:1.85}.counter{text-align:right;color:#737e8c;font-size:14px;margin-top:-28px;position:relative;pointer-events:none;padding-right:12px}.agree{display:block;margin:29px 0 25px;font-size:16px}.agree input{width:22px;height:22px;vertical-align:-5px;margin:0 8px 0 0}.linkish{color:#155296;font-weight:700}.text-button{border:0;background:none;padding:0}.primary{border:0;background:linear-gradient(135deg,#1b477f,#0a2f63);color:#fff;border-radius:7px;font-weight:700}.wide{width:100%;padding:17px;font-size:20px}.site-footer{border-top:1px solid #dfe4eb;text-align:center;padding:20px;color:#596474;font-size:15px;line-height:2}.site-footer span{padding:0 16px;border-right:1px solid #c8ced6}.site-footer span:last-child{border:0}.error-notice,.notice{margin:0 auto 16px;width:850px;border-radius:8px;padding:13px;text-align:left}.notice{background:#edf7ed;color:#247038;border:1px solid #cbe8d0}.error-notice{background:#fff4f2;color:#a33f34;border:1px solid #f0c9c3}.login-page .center-wrap{width:520px;padding-top:150px}.login-page .error-notice,.login-page .form-card,.login-page .notice{width:520px}.login-page .form-card{padding:36px}.login-page h1{font-size:30px;margin:0 0 29px}.login-note{font-size:14px;color:#687486;line-height:1.7;margin:18px 0 0}.demo-btn{margin-top:14px;width:100%;padding:14px;border:1px solid var(--navy);border-radius:7px;background:#fff;color:var(--navy);font-weight:700}.demo-btn.show{display:block}.app{height:100vh;display:flex;overflow:hidden}.app-side{width:305px;background:#fff;border-right:1px solid #dfe4eb;display:flex;flex-direction:column}.brand{height:91px;padding:30px 44px;font-size:23px;font-weight:800;border-bottom:1px solid #dfe4eb;white-space:nowrap}.app-nav{padding:25px 24px}.nav-btn{width:100%;border:0;background:transparent;text-align:left;border-radius:11px;padding:24px 25px;margin-bottom:8px;color:#111d30;font-size:20px;font-weight:700}.nav-btn.active{background:linear-gradient(135deg,#1b477f,#0d3266);color:#fff}.support{margin:auto 24px 30px;border-top:1px solid #e1e5e9;padding:27px 24px 0;font-size:16px;font-weight:700}.app-main{flex:1 1;min-width:0;display:flex;flex-direction:column;background:#fff}.topbar{height:91px;border-bottom:1px solid #dfe4eb;display:flex;align-items:center;justify-content:flex-end;padding:0 45px;gap:32px}.top-trial{margin:0;font-size:16px;padding:11px 20px}.account-wrap{position:relative}.account{border:0;background:#fff;font-weight:700;font-size:17px;display:flex;gap:10px;align-items:center;padding:8px}.avatar{width:40px;height:40px;border-radius:50%;background:#d8dde3;position:relative}.avatar:before{width:12px;height:12px;border-radius:50%;top:8px;left:14px}.avatar:after,.avatar:before{content:"";position:absolute;background:#7c8795}.avatar:after{width:24px;height:13px;border-radius:13px 13px 8px 8px;bottom:6px;left:8px}.account-menu{position:absolute;right:0;top:54px;width:185px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 20px #152a491c;padding:6px;z-index:4}.account-menu button{display:block;width:100%;text-align:left;border:0;background:#fff;border-radius:5px;padding:11px;color:#263246}.app-content{flex:1 1;overflow:auto;padding:25px 44px 32px}.tab-row{display:flex;border-bottom:1px solid #dce2e9;margin-bottom:45px}.top-tab{background:#f7f8fa;border:1px solid #e5e9ee;border-bottom:0;border-radius:10px 10px 0 0;padding:16px 35px;min-width:185px;font-size:18px;font-weight:700;color:#273448}.top-tab.selected{background:#fff;color:var(--navy);border-bottom:3px solid var(--navy)}.portal-loading{padding:60px;color:#697486}.access-notice{background:#fff7e8;border:1px solid #ecd8ae;border-radius:9px;padding:20px;margin-bottom:24px}.access-notice p{margin:0 0 12px}.chat-panel{position:relative;min-height:680px;padding-bottom:112px}.chat-empty{padding:95px 18px;color:#647185}.chat-empty p{font-size:20px;font-weight:700;margin-bottom:9px}.chat-empty span{font-size:16px}.message{max-width:72%;padding:20px 22px;border-radius:14px;font-size:17px;line-height:1.75;margin:22px 0 5px}.message.user{margin-left:auto;background:var(--user);border-radius:14px 14px 2px 14px}.message.assistant{background:#f7f8fa;border:1px solid #e3e7ec}.msg-time{font-size:14px;color:#788393;margin:0 10px 28px}.msg-time.right{text-align:right}.source{display:inline-flex;align-items:center;gap:7px;border:1px solid #dce2e8;border-radius:12px;background:#fff;padding:6px 10px;margin-top:18px;font-size:14px;font-weight:700;color:#465365}.loading{color:#657286;font-size:16px;margin:15px 10px}.chat-compose{position:absolute;bottom:0;left:0;right:0;display:flex;gap:13px}.chat-compose textarea{height:102px;resize:none}.send{width:144px;font-size:20px}.section-title{font-size:30px;margin:0 0 8px}.section-lead{margin:0 0 25px;color:#414d5d;font-size:16px}.sub-title{font-size:19px;margin:24px 0 14px}.slots-wrap{display:flex;align-items:center;gap:16px}.slots{display:flex;gap:25px;flex:1 1;overflow:hidden}.slot{flex:1 1;min-width:172px;border:1px solid #e1e5ea;border-radius:10px;padding:20px 22px}.slot-date{font-weight:700}.slot-time{font-size:21px;font-weight:800;margin:12px 0}.duration{color:#737f8d;margin-bottom:20px}.small-primary{width:100%;padding:10px;font-size:15px}.arrow{border:1px solid #e0e4ea;background:#fff;width:52px;height:52px;border-radius:50%;font-size:36px;color:#253b56}.booking{border:1px solid #e1e5ea;border-radius:10px;display:grid;grid-template-columns:230px 1fr 120px;align-items:center;padding:18px 24px;grid-gap:15px;gap:15px}.book-main,.booking-label{font-weight:700}.status{display:inline-block;padding:4px 10px;border-radius:14px;font-size:14px;margin-top:8px}.confirmed{background:#e3f0ff;color:#1765a8}.done{background:var(--ok);color:#25833a}.outline{border:1px solid #dbe1e8;background:#fff;border-radius:7px;padding:8px 15px;font-weight:700;color:#263347}.history{width:100%;border-collapse:collapse;border:1px solid #e1e5ea;border-radius:10px;overflow:hidden}.history td,.history th{padding:12px 24px;border-bottom:1px solid #e8ebef;text-align:left;font-size:14px}.history th{background:#f7f8fa}.info{border:1px solid #dce4ed;border-left:3px solid #1b63a6;border-radius:9px;margin-top:14px;padding:16px;font-size:15px}.studio-card{max-width:680px;margin:92px auto;background:#fff;border:1px solid #e2e6eb;border-radius:12px;padding:48px;text-align:center;box-shadow:0 4px 12px #162b4810}.studio-symbol{margin:auto auto 20px;width:58px;height:58px;border-radius:12px;background:#e9f0fa;display:flex;align-items:center;justify-content:center;color:var(--navy);font-size:32px}.studio-card h2{font-size:22px;margin:0 0 12px}.studio-card p{color:#5e6a79;margin:0 0 28px}.open-studio{padding:15px 38px;font-size:17px}.studio-result{margin-top:20px;color:#277443;background:#edf8ef;border-radius:7px;padding:10px}.admin{height:100vh;display:flex;background:#f8fafc}.admin-side{width:230px;background:linear-gradient(165deg,#082a50,#06396c);color:#fff;display:flex;flex-direction:column}.admin-brand{padding:28px 26px;font-size:21px;font-weight:800;border-bottom:1px solid #2b5376}.admin-nav{padding-top:10px}.admin-nav button{display:block;width:100%;text-align:left;border:0;background:transparent;color:#fff;padding:16px 28px;font-size:16px}.admin-nav button:first-child{background:#0875af}.admin-logout{margin-top:auto;margin-bottom:20px;border:0;background:transparent;color:#fff;text-align:left;padding:16px 28px;font-size:16px}.admin-main{flex:1 1;min-width:0}.admin-top{height:68px;background:#fff;border-bottom:1px solid #e2e7ec;display:flex;align-items:center;padding:0 38px;gap:40px}.admin-top button{height:68px;border:0;background:#fff;padding:0 15px;font-size:16px;font-weight:700}.admin-top .active{color:#0877b9;border-bottom:3px solid #0877b9}.admin-user{margin-left:auto}.admin-body{padding:26px 30px}.stats{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:20px;gap:20px}.stat{background:#fff;border:1px solid #e6eaf0;border-radius:9px;padding:24px;min-height:140px}.stat-label{font-weight:700}.stat-num{font-size:30px;font-weight:800;margin:10px 0}.stat-sub{color:#149caf;font-size:14px}.approval{background:#fff;border:1px solid #e6eaf0;border-radius:9px;margin-top:20px;padding:24px}.approval h1{font-size:23px;margin:0 0 20px}.admin-table{width:100%;border-collapse:collapse;table-layout:fixed}.admin-table td,.admin-table th{text-align:left;border-bottom:1px solid #e8ebef;padding:12px 0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-table th:first-child{width:33%}.admin-table th:nth-child(2){width:45%}.admin-table th:nth-child(3){width:22%}.admin-action{display:flex;gap:10px}.approve{background:#1192b0;border:0;border-radius:6px;color:#fff;padding:9px 17px;font-weight:700}.reject,.revise{background:#fff;border:1px solid #dce2e8;border-radius:6px;padding:8px 15px}.pager{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:20px}.page{border:1px solid #dce3e9;background:#fff;border-radius:5px;width:39px;height:39px}.page.active{background:#157fb7;color:#fff;border:0}.total{float:left;color:#536173;margin-top:10px}.toast{position:fixed;right:28px;bottom:28px;background:#173e70;color:#fff;padding:14px 20px;border-radius:8px;box-shadow:0 8px 22px #0003;z-index:10;opacity:0;transform:translateY(12px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:translateY(0)}@media(max-width:900px){.center-wrap,.form-card{width:calc(100% - 32px)}.service-title{font-size:34px}.app-side{width:230px}.brand{padding-left:24px}.app-content{padding:20px}.slots{overflow:auto}.booking{grid-template-columns:1fr}.history{min-width:700px}.app-content{overflow:auto}.top-tab{min-width:auto;padding:13px}.admin-side{width:190px}.admin-body{padding:18px}.stats{grid-template-columns:1fr}.admin-table{min-width:750px}.approval{overflow:auto}}.ico{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:28px;line-height:1}.loading.show,.notice.show,.studio-result.show{display:block}.account-menu{display:none}.account-menu.show{display:block}.account-menu button:hover{background:#f1f5f9}.primary:not(:disabled):hover{filter:brightness(1.08)}